Отправка данных в многоадресный сокет с помощью GCDAsyncUDPSocket в локальной сети

Я работаю в приложении, где вы подключаетесь к многоадресному сокету, чтобы прослушивать другие устройства, которые отправляют сообщения в этот сокет. При прослушивании все работает нормально. Проблема в том, когда я пытаюсь отправить сообщение на этот сокет в локальной сети. Там написано "Сеть недоступна", и я не могу отправить данные. Мой код такой.

ПОРТ 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 ответов

Другие вопросы по тегам