0

我在一个应用程序中工作,您可以在其中订阅多播套接字以收听发布到该套接字的其他设备。聆听时一切正常。问题是当我尝试发布到本地网络中的那个套接字时。它说“网络无法访问”,我无法发送数据。我的代码是这样的。

端口 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];

当我可以访问互联网时,此代码有效。但是当我连接到本地网络时,发件人会说“网络无法访问”。我不知道我做错了什么。希望您能够帮助我。谢谢。

4

0 回答 0