iOS中Udp/Tcp合并在一起使用

最近在做一款智能家居的APP,用到了udp和tcp,在网上搜了很多资料,基本上搜到的都是udp和tcp单独使用的例子,还有tcp只针对一个设备连接的例子,所以很多没有的功能需要自己尝试各种方法来解决。比如udp和tcp一起使用,udp收到广播以后直接进行tcp连接,tcp同时针对多个设备进行连接等问题。

项目中用到了GCDAsyncUdpSocket框架,大家可以自己查阅相关资料

这里说一下GCDAsyncUdpSocket这个框架中的GCDAsyncSocket,这个类很神奇,如果把它设置为全局对象,那么针对连接多个设备的时候会容易出问题,如果设置成局部对象,比如说像下面这样就会连接失败。在项目中针对以上情况进行了解决,虽然解决的思路不是太好,但是确实可以进行多个设备进行连接

GCDAsyncSocket *asyncsocket = [[GCDAsyncSocket alloc] init];
asyncsocket.delegate = self;
asyncsocket.delegateQueue = dispatch_get_main_queue();

由于代码是从项目中抽出来的,所以在里面做了一些改动。项目中还有很多细节没有优化,大家可以自己进行优化

下面是github地址
https://github.com/elite-kai/ELUdpTcp

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容