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

最近在做一款智能家居的APP,用到了udp和tcp,在網(wǎng)上搜了很多資料,基本上搜到的都是udp和tcp單獨(dú)使用的例子,還有tcp只針對(duì)一個(gè)設(shè)備連接的例子,所以很多沒(méi)有的功能需要自己嘗試各種方法來(lái)解決。比如udp和tcp一起使用,udp收到廣播以后直接進(jìn)行tcp連接,tcp同時(shí)針對(duì)多個(gè)設(shè)備進(jìn)行連接等問(wèn)題。

項(xiàng)目中用到了GCDAsyncUdpSocket框架,大家可以自己查閱相關(guān)資料

這里說(shuō)一下GCDAsyncUdpSocket這個(gè)框架中的GCDAsyncSocket,這個(gè)類(lèi)很神奇,如果把它設(shè)置為全局對(duì)象,那么針對(duì)連接多個(gè)設(shè)備的時(shí)候會(huì)容易出問(wèn)題,如果設(shè)置成局部對(duì)象,比如說(shuō)像下面這樣就會(huì)連接失敗。在項(xiàng)目中針對(duì)以上情況進(jìn)行了解決,雖然解決的思路不是太好,但是確實(shí)可以進(jìn)行多個(gè)設(shè)備進(jìn)行連接

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

由于代碼是從項(xiàng)目中抽出來(lái)的,所以在里面做了一些改動(dòng)。項(xiàng)目中還有很多細(xì)節(jié)沒(méi)有優(yōu)化,大家可以自己進(jìn)行優(yōu)化

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容