時々、このエラーが発生します
エラー Domain=NSPOSIXErrorDomain Code=65 "No route to host" UserInfo={NSLocalizedDescription=ホストへのルートがありません。NSLocalizedFailureReason=send() 関数でエラーが発生しました。}
一部のルーターでudpソケットを開くとき。何が原因なのかわかりません。
これは、udp ソケットを開くための私のコードです。
- (void)openSocket
{
if(_asyncUdpSocket == nil)
{
_asyncUdpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
}
if(![_asyncUdpSocket isClosed])
{
return;
}
NSError *error;
if (![_asyncUdpSocket enableBroadcast:YES error:&error])
{
NSLog(@"AsyncUdp: enable broadcast failed error: %@", error);
}
if (![_asyncUdpSocket bindToPort:_port error:&error])
{
NSLog(@"AsyncUdp: bind to port %li failed error: %@", (unsigned long)_port, error);
}
if (![_asyncUdpSocket joinMulticastGroup:_address error:&error])
{
NSLog(@"AsyncUdp: join multicast group %@ failed error: %@", _address, error);
}
if(![_asyncUdpSocket beginReceiving:&error])
{
NSLog(@"AsynUdp: begin receiving error: %@", error);
}
if(error != nil)
{
NSLog(@"Udp failed to open!");
[_delegate onUdpSocketDidOpenfailed];
}
else
{
NSLog(@"UdpSocket - opend udp socket successful!");
[_delegate onUdpSocketDidOpen];
}
}
これはiPhone 7で非常に頻繁に発生することに注意してください