使用本地网络中的GCDAsyncUDPSocket将数据发送到多播套接字

时间:2015-02-13 18:10:39

标签: objective-c udp multicast gcdasyncsocket gcdasyncudpsocket

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

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

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

0 个答案:

没有答案