我正在一个应用程序中工作,您可以在其中使用多播套接字来监听发布到该套接字的其他设备。听的时候一切都很好。问题是当我尝试在本地网络中发布到该套接字时。它说“网络无法访问”,我无法发送数据。我的代码是这样的。
PORT 5775
SOCKETADDRESS @“225.4.5.6”
听众
self.socket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
if (![self.socket bindToPort:PORT error:&error])
{
NSLog(@"Error binding to port: %@", error);
return;
}
if(![self.socket joinMulticastGroup:SOCKETADDRESS error:&error]){
// NSLog(@"Error connecting to multicast group: %@", error);
// return;
}
if (![self.socket beginReceiving:&error])
{
NSLog(@"Error receiving: %@", error);
return;
}
客户(发件人)
self.udpSender = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
if (![self.udpSender bindToPort:BRD_PORT error:&error])
{
NSLog(@"Error binding to port: %@", error);
return;
}
if(![self.udpSender enableBroadcast:YES error:&error]){
// NSLog(@"broadcast s%@", error);
//return;
}
我试着这样写。
[self.udpSender sendData:input toHost:SOCKETADDRESS port:PORT withTimeout:-1 tag:0];
此代码可在我访问互联网时使用。但是,当我连接到本地网络时,发件人说“网络无法访问”。我不知道我做错了什么。希望您能够帮助我。感谢。