2010-11-09 153 views
17

有没有人有从iPhone SDK发送UDP数据包的好教程?从iPhone发送UDP数据包

编辑:

竟是真的很容易做到这一点...

RTFM!

包括AsyncUdpSocket只是在头部添加此之后:

AsyncUdpSocket *socket; 

而且在主:

NSData *data = ... 
[socket sendData:data toHost:@"192.168.x.x" port:5002 withTimeout:-1 tag:1]; 

测试时不要忘记让您的服务器的防火墙UDP通讯!

+0

有点历史......在一个阶段有绝对不可思议的AsyncSocket库,最初由神秘的Dustin J. Voss创建。 (有时称为CocoaAsyncSocket)。它有一个简单的UDP示例代码,它是iOS开发的核心。如果你可以挖掘它,它可能仍然是有价值的。这是一个不可思议的图书馆。 – Fattie 2016-05-22 13:14:11

+0

如何处理IP地址变化 – remyr3my 2017-07-10 08:05:35

+0

@ Cyph3r您需要使用一些自定义逻辑来设置'NSString'变量,您可以在'toHost'参数中传递这个变量。或者,也可以使用域名并设置DNS记录,而不是使用IP地址,并在必要时进行更新。这完全取决于你想要做什么。 – 2017-07-27 09:13:19

回答

15

CocoaAsyncSocket是一个不错的库,它包含一个名为AsyncUdpSocket的类,该类是围绕底层套接字API的Obj-C封装器。

+0

我会在途中给你正确的答案!对于任何人阅读这个问题的同一问题,我发布了一些代码作为编辑的问题。 – 2010-11-10 00:52:19

+0

链接不再工作:-( – Xander 2013-03-11 13:26:08

+0

链接已更新为github上的新主页:https://github.com/robbiehanson/CocoaAsyncSocket – 2013-03-11 17:11:10

2

您可以使用CFNetwork框架创建一个CFSocket的UDP套接字。这里是CFSocket reference

+0

因此,要发送一个UDP数据包到我的服务器,我只是使用CFSocketSendData? – 2010-11-09 22:00:04

+0

是的,在使用IPPROTO_UDP创建CFSocketCreate之后,可以使用CFSocketSendData。 Mac网络编程邮件列表是查找示例的好地方:http://lists.apple.com/archives/macnetworkprog/ – Donald 2010-11-09 22:26:07

+0

AsyncUdpSocket更简单! :) – 2010-11-10 00:54:05