iOS socket報(bào)錯(cuò)收集與解決方案

報(bào)錯(cuò)信息:Error Domain=GCDAsyncUdpSocketErrorDomain Code=1 "Must bind socket before you can receive data. You can do this explicitly via bind, or implicitly via connect or by sending data." UserInfo={NSLocalizedDescription=Must bind socket before you can receive data. You can do this explicitly via bind, or implicitly via connect or by sending data.}

錯(cuò)誤分析:

兩部手機(jī),在利用socket進(jìn)行客戶端與服務(wù)端通訊時(shí).客戶端轉(zhuǎn)服務(wù)端的時(shí)候沒有Close掉客戶端.一直占用著端口.
所以在創(chuàng)建服務(wù)端的時(shí)候,調(diào)用[_udpSocket bindToPort:5432 error:&error];
就會(huì)報(bào)以上錯(cuò)誤.

解決方案:
在清理客戶端的時(shí)候增加一句[_asyncUdpSoket close];

// 客戶端退出
- (void)clientDisconnect {
    ZLLog(@"%s",__func__);
    [_timer invalidate];
    _timer = nil;
    [_asyncUdpSoket close]; // 關(guān)鍵代碼
    _asyncUdpSoket = nil;
    _UDPClient = nil;
}

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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