Asyncsocket使用-通过委托的方式发送接收的信息

最近开发的项目有用到Asyncsocket框架进行TCP通信,遇到了关于如何将socket接收的信息准确发送给请求对象的问题。例如,对象A调用Socket单例发送了一个请求;于此同时,对象B也调用了该socket单例发送了一个请求;甚至还有对象C等等。当某一时刻,socket单例对象收到了服务器返回的信息,而此时,socket对象如何判断和精准的将该信息发送给相应的请求对象呢?还有就是当服务器返回信息时,当初发送请求的A、B、C等对象是否还存在否?简单的说就是socket单例如何与这些请求对象通信的问题。对象间的通信有协议委托、block、通知等。在此,我给大家推荐通过协议委托的方式实现的通信。主要代码如下:

1、先定义一个用于记录请求对象信息的模型类:

2、定义socket单例类


3、在- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag回调方法中实现如下代码:

4、值得注意的是,在socket断开连接后,重新跟服务器建立连接时,需清空代理对象数组。

//断开连接回调

- (void)onSocketDidDisconnect:(AsyncSocket *)sock

{

//删除所有代理对象

[self.delegateArray removeAllObjects];

//重新建立连接

[self socketConnect];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容