ios专题 - socket(1)】的更多相关文章

目录[-] socket简介 tcp和udp的区别 TCP三次握手和四次挥手 TCP三次握手 tcp四次挥手 tcpsocket和udpsocket的具体实现 tcpsocket的具体实现 udpsocket的具体实现 由于博客迁移至www.coderyi.com,文章请看http://www.coderyi.com/archives/429 socket简介 首先让我们通过一张图知道socket在哪里? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口. tcp和ud…
二,BSD socket API 简介 BSD socket API 和 winsock API 接口大体差不多,下面将列出比较常用的 API: API接口 讲解 int socket(int addressFamily, int type,int protocol) int close(int socketFileDescriptor) socket 创建并初始化 socket,返回该 socket 的文件描述符,如果描述符为 -1 表示创建失败. close 关闭 socket. 通常参数…
其实写这个socket一开始我是拒绝的. 因为大家学C 语言和linux基础时肯定都有接触,客户端和服务端的通信也都了解过,加上现在很多开放的第三方库都不需要我们来操作底层的通信. 但是来了!!! 但是!还是想写.底层的东西最好了解下. 好了 正经了!!!! 效果 由于5M的上传限制GIF可能看不清 我再截两张图吧 模型图 做了个逗比模型图️ 分析 由上图可以了解到服务器和客户端需要做哪些工作 服务器 抽象一点分为: 1.创建线程等待接收客户端的连接 2.接收并解析客户端发来的消息 3.给客户端…
1.什么是粘包? 粘包通常出现在TCP的协议里面,对于UDP来说是不会出现粘包状况的,之所以出现这种状况的原因,涉及到一种名为Nagle的算法. Nagle算法通过减少必须发送的封包的数量,提高网络应用程序系统的效率,解决负载问题.通俗的讲,就是在发包的时候会建立一个缓存区,发送的数据都会先进入这个缓存区,当上一条数据的接收被确认或者到达最大等待时间之后,才会将缓存区的数据一块发送过去,如此反复.将小包进行整合,避免小包多次发送造成的传输速度慢等问题. 2.什么时候才需要处理粘包? 理论上来讲,…
本文介绍使用GCDAsyncSocket来实现iOS端的socket,有关简易服务端的代码已经在上一篇文章中提到,这里不再赘述,将直接介绍如何实现客户端. 首先下载CocoaAsyncSocket框架,如果下载过iOS的XMPP框架,在Vendor中有这个框架,将框架导入工程,并包含其头文件GCDAsyncSocket.h. ①这是一个异步socket框架,在子线程中完成socket的连接和数据接收,通过代理的方式通知控制器,因此要成为它的代理,代理名为GCDAsyncSocketDelegat…
对于微博.微信朋友圈之类的网络通信,使用JSON完全可以满足需求,但是如果要制作网络游戏,就需要建立一个持久连接,这时候就要考虑使用socket. 在iOS上实现socket大体有两种方法,一是借助自带的输入输出流和C语言socket相结合,二是利用第三方类库CocoaAsyncSocket,本文将介绍前者,在下一篇文章中介绍基于第三方类库的实现方法. 要调试socket,首先应该有一个简易的socket服务端,下面是用python写的简单服务端,功能是发送iam:name相当于登录操作,服务器…
Socket编程 一.了解网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层  三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议…
设计模式:解决编程问题的设计模板 设计模式是一个抽象工具,用于面向对象的软件开发,以及其他领域.它是一个设计模板,在特定背景中,解决一般性的.重复出 现的问题.因此,设计模式是一种针对特定的.具体的设计的准则:在某种意义上,它是模式的“实例化”.在如何应用设计模式上,有一定的灵活性,通常例如程 序设计语言和现有架构等事物,会影响如何应用模式. 有几个设计主题或原则对设计模式产生影响.这些设计原则是构建面向对象系统的经验法则,例如“封装发生变化的系统结构方面”(encapsulate the as…
在ios中,委托模式非常常见,那委托模式是什么? 委托模式是把一个对象把请求给另一个对象处理. 下面见例子: #import <UIKit/UIKit.h> @protocol LQIPeople<NSObject> @required -(void) eat; -(void) run; -(void) walk; @optional -(void) speak; @end @interface LQPerson : NSObject @property (assign) id&l…
知识点 : 1)ios 核心动画的基础是图层.图层的基础是CALayer,它是所有核心图层类的父类. 2)CATransaction是核心动画类负责协调多个动画原子显示更新.事务支持嵌套使用. 3)图层与UIView之前的最大区别是,图层不会直接渲染到屏幕上.图层封装了几何,时间,可视化属性. 4)每个图层树分为2部分,一部分是呈现树,一部分是渲染树. 5)图层必须由视图来脱管. 图层的内容创建有以下几个方法: A)使用包含图片内容的 CGImageRef 来显式的设置图层的 contents…