Отправка данных в многоадресный сокет с помощью 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];
Эти коды работают, когда у меня есть доступ в интернет. Но когда я подключаюсь к локальной сети, отправитель говорит: "Сеть недоступна". Я не знаю, что я делаю не так. Надеюсь, ты сможешь мне помочь. Благодарю.