Отправить сообщение «Hello World» через UDP с iPhone

Я новичок в цели C, и мне нужно отправить простое сообщение через UDP. Серверная часть работает, потому что она реализована в C #.

Код сервера в C #:

<code> var server = new UdpClient(8585);
 var groupEP = new IPEndPoint(IPAddress.Parse("192.168.0.120"),8585);
 byte[] bytes = server.Receive(ref groupEP);
</code>

и клиентская часть в C #:

<code>   System.Net.Sockets.UdpClient client;     
client = new System.Net.Sockets.UdpClient("192.168.0.120",8585);    
client.Send(new byte[]{1,2,3,4},4);
</code>

как я могу сделать ту же часть клиента в цели c? Я знаю, что в Интернете есть много учебных пособий, таких какэта библиотека, когда я импортирую эту библиотеку в свой проект, я не знаю, как создать новый объект. Я пытался:

<code> [[GCDAsyncUdpSocket alloc] initWithSocketQueue:... ??? I don't know how to initialize it.
</code>

Я буду признателен, если кто-нибудь покажет мне простой пример того, как я могу воспроизвести клиентскую часть в задаче c.

 endo.anaconda01 мая 2012 г., 01:21
здесь вы найдете ответ:stackoverflow.com/questions/1176273/…

Ответы на вопрос(4)

Сначала прочитайтеэтой статьи в котором изложены некоторые из основных типов сетевых коммуникаций, доступных в iOS.

В частности, у Apple есть пример сетевого взаимодействия с использованием сокетов иNSStream учебный классВот.

Выcan используйте обычный API сокетов BSD, но это не рекомендуется, поскольку они не работают с некоторыми сетевыми функциями iOS, такими как VPN по требованию. Если это не имеет значения, то вы можете проверитьВот для примеров того, как использовать сокеты в C.

Исходя из личного опыта, это не так просто, как то, что вы получили в C #.

Решение Вопроса

скачать GCDAsyncUdpSocket сВот, тогда вы можете отправлять пакеты как:

 GCDAsyncUdpSocket *udpSocket ; // create this first part as a global variable
 udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

 NSData *data = [ 
                   [NSString stringWithFormat:@"%Hello Wold" 
                    dataUsingEncoding:NSUTF8StringEncoding
                ];

[udpSocket sendData:data toHost:@"192.168.10.111" port:550 withTimeout:-1 tag:1];
 07 июл. 2017 г., 14:26
Что делать, если IP-адрес меняется
 27 июн. 2014 г., 04:26
проект уже переехал на Githubgithub.com/robbiehanson/CocoaAsyncSocket

Мне удается решить проблему, используя monotouch. Я просто делаю это так же, как я делаю это в c #:

 System.Net.Sockets.UdpClient client;
 client = new System.Net.Sockets.UdpClient("192.168.0.120",550);
 client.Send(new byte[]{1,2,3,4},4);

Я не хочу платить за лицензию. это будет стоить 400 долларов. Если бы у меня было более 3 строк кода, я мог бы подумать об этом.

Apple предоставляет пример проекта под названиемUDPEcho, Несмотря на то, что это проект Mac, он опирается главным образом на классы из Core Foundation, который также доступен для iOS, и содержащиеся в нем уроки должны в равной степени относиться к iOS.

 Tono Nam01 мая 2012 г., 04:46
Это именно то, что мне было нужно. Он отлично работает, когда я запускаю проект Mac. Когда я копирую те же библиотеки и вызываю тот же метод, он не работает на iPhone. Я не получаю никаких ошибок, хотя. Может быть, я что-то не так делаю или это просто работает на Mac?

Ваш ответ на вопрос