На iOS, как вы используете GCDAsyncUdpSocket для прослушивания двух портов?
Я использую GCDAsyncUdpSocket
на iOS (успешно) отправлять и получать данные, используя UDP, запустив его следующим образом:
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate: self delegateQueue: dispatch_get_main_queue()];
NSError *error;
BOOL result = [udpSocket bindToPort: 3054 error: &error];
Устройство отправляет данные обратно на порт 3054, который я вижу с помощью делегата вызова udpSocket:didReceiveData: fromAddress:withFilterContext:
, Устройство также отправляет информацию о порте 9750, и я бы тоже хотел это увидеть. Я пытался не привязываться к определенному порту, но это не удается по другим причинам. Я также попытался запустить отдельный сокет, используя
udpDataSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate: self delegateQueue: dispatch_get_main_queue()];
NSError *error;
BOOL result = [udpDataSocket bindToPort: 9750 error: &error];
Хотя эти вызовы выполняются без ошибок, я не получаю данные от порта 9750.
Я точно знаю, что данные отправляются; это проблема со стороны iOS. Я знаю это, потому что:
Логический анализатор видит, что данные поступают на устройство для передачи через порт 9750; это наводит на размышления, но не является окончательным.
Я могу переключить порт, который устройство использует для отправки второго потока данных, на 3054, и в этом случае мое приложение видит данные. Это нежелательно, хотя.
Итак, как можно прочитать данные с двух UDP-портов на один и тот же IP-адрес на iOS, используя GCDAsyncUdpSocket
?