отправка UDP-запроса на номер 255.255.255.255 и ожидание ответа в iOS - PullRequest
1 голос
/ 15 марта 2012

Я бы отправил UDP-трансляцию с iPhone, а затем прослушал UDP-ответ с периодом ожидания со всех устройств с открытым портом.Будет ли отвечать мое пользовательское устройство из той же подсети?(если у меня 192.168.1.100 и IP пользовательского устройства - 192.168.1.201) Что использовать «SmallSockets» или «cocoaAsyncSocket»?Какую функцию использовать для прослушивания ответа?Thanx!

1 Ответ

3 голосов
/ 16 марта 2012

Я решил использовать cocoaAsyncSocket. Для трансляции вы можете использовать:

[udpSocket sendData:datatosend toHost:@"192.168.1.113" port:port withTimeout:-1 tag:0];

чтобы получить:

- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext
{
    NSString *msg = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    NSString *host = nil;
    uint16_t port = 0;
    [GCDAsyncUdpSocket getHost:&host port:&port fromAddress:address];

    if (msg)
    {   
        NSLog(@"Message = %@, Adress = %@ %i",msg,host,port);
    }
    else
    {
        NSLog(@"Error converting received data into UTF-8 String");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...