我在一个应用程序中工作,您可以在其中订阅多播套接字以收听发布到该套接字的其他设备。聆听时一切正常。问题是当我尝试发布到本地网络中的那个套接字时。它说“网络无法访问”,我无法发送数据。我的代码是这样的。
端口 5775
套接字@“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];
当我可以访问互联网时,此代码有效。但是当我连接到本地网络时,发件人会说“网络无法访问”。我不知道我做错了什么。希望您能够帮助我。谢谢。