Я пытаюсь начать и создать простой UDP-сервер и клиент, используя CocoaASyncSocket. Я довольно много копировал код в примерах из hereCocoaAsyncSocket UDP Простой сервер и клиент
UPDATE:
Я попытался запустить предоставленные примеры, но они не похоже на работу с адресом хоста + порт, который я предоставил , Что бы я заполнил для них (на стороне клиента), если мой клиент + сервер находится на одном и том же Wi-Fi?
Мой сервер:
-(void)startServer{
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *error = nil;
if (![udpSocket bindToPort:PORT error:&error])
{
NSLog(@"Error starting server (bind): %@", error);
return;
}
if (![udpSocket beginReceiving:&error])
{
[udpSocket close];
NSLog(@"Error starting server (recv): %@", error);
return;
}
NSLog(@"Udp Echo server started on %@:%i",[udpSocket localHost_IPv4],[udpSocket localPort]);
isRunning = YES;
}
Мой клиент:
-(void)setupSocket{
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *error = nil;
if (![udpSocket bindToPort:HOST_PORT error:&error])
{
NSLog(@"Error binding: %@", error);
return;
}
if (![udpSocket beginReceiving:&error])
{
[udpSocket close];
NSLog(@"Error receiving: %@", error);
return;
}
NSLog(@"ready");
}
- (IBAction)send:(id)sender
{
NSString *msg = @"testerrrr";
NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding];
[udpSocket sendData:data toHost:HOST_IP port:HOST_PORT withTimeout:-1 tag:0];
NSLog(@"sent message to server");
}
Я не считаю, что моя проблема в инициализации сервера или гнездо, но, возможно, в что мой выбранный IP + PORT. Сейчас я запускаю сервер на iOS-симуляторе и клиент на реальном устройстве. При отправке данных с устройства я вижу, что пакеты выходят, но сервер не получает их.
У меня он настроен для привязки порта 1234 и что клиент отправляет его на адрес сервера, который я получил от «whatismyip.com». Я также попытался изменить роли, но до сих пор не добился успеха.
Кроме того, когда я попытался отправить данные себе (сервер -> сервер, например), это сработало, но между двумя не повезло!
Это похоже на довольно простую задачу, но не удалось заставить ее работать. Цените помощь!