Socket并不是一种协议, 而是一组接口(即API). 协议的实现方通过Socket对外提供具体的功能调用....连接建立以后, 就可以读写数据了, 写数据的接口如下:
至于读数据, 这里我们并不走接口, 而是通过回调方法将读到的数据以参数的形式将数据给到调用方....这里需要注意的是, 这里的Request和Response并不总是一一对应, 比如客户端单向的心跳请求报文服务端是不会响应的, 而服务端主动发出的推送报文也不是客户端请求的....我们需要将调用方提供的Request和completionHandler打包成一个Task并保存起来, 当调用方调用Task.resume时, 我们再将Request.data写入Socket....Task拿到Response后通过completionHandler交付给调用方. 至此, 一次TCPTask完成.