前言
Socket
Socket 是对 TCP/IP 协议的封装,其中IP协议对应为网络层,TCP 协议对应为传输层,而我们常用的HTTP协议,是位于应用层,在七层模型中HTTP协议是基于 TCP/IP 的,我们想要使用 TCP/IP 协议,则要通过 Socket
Socket 编程用途(其他待补充)
长连接
端到端的即时通讯
Socket 和 Http(来源网络)
socket 一般用于比较即时的通信和实时性较高的情况,比如推送,聊天,保持心跳长连接等,http 一般用于实时性要求不那么高的情况,比如信息反馈,图片上传,获取新闻信息等。
二、类似《你猜我画》简易效果说明
效果(分别是模拟器和手机截图)


工作中碰到类似需求,但没找到类似的成熟的第三方框架,只有先看看原理性的东西了。其实也就基于 socket 即时传输图片数据、笔画数据,还有聊天文字,也可以拓展做其他的指令控制
没有做注册登录,没有做用户管理,只是简单原理性的探讨
基于 GCDAsyncSocket 框架进行,关于 GCDAsyncSocket 的介绍可自行了解
三、服务端部分代码
直接用 mac 程序作为服务端
Server 类
/*!
@method 开启服务
@abstract 开启服务器 TCP 连接服务
*/- (void)startServer { self.serverSocket = [[GCDAsyncSocket alloc]initWithDelegate:self
delegateQueue:dispatch_get_main_queue()]; &
