iOS socket报错收集与解决方案

2016-10-11  本文已影响643人  策马鞭程

报错信息: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.}

错误分析:

两部手机,在利用socket进行客户端与服务端通讯时.客户端转服务端的时候没有Close掉客户端.一直占用着端口.
所以在创建服务端的时候,调用[_udpSocket bindToPort:5432 error:&error];
就会报以上错误.

解决方案:
在清理客户端的时候增加一句[_asyncUdpSoket close];

// 客户端退出
- (void)clientDisconnect {
    ZLLog(@"%s",__func__);
    [_timer invalidate];
    _timer = nil;
    [_asyncUdpSoket close]; // 关键代码
    _asyncUdpSoket = nil;
    _UDPClient = nil;
}

上一篇 下一篇

猜你喜欢

热点阅读