从iPhone发送UDP数据包

18

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

编辑:

实际上这很容易做到...

RTFM!

在包含AsyncUdpSocket后,只需将此代码添加到头文件中:

AsyncUdpSocket *socket;

在主函数中:

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

在测试时,不要忘记在服务器防火墙上允许UDP通信!


一点历史...曾经有一个绝对令人难以置信的AsyncSocket库,最初由神秘的Dustin J. Voss创建。(有时被称为CocoaAsyncSocket。)在某个阶段,它带有简单的UDP示例代码,并且是iOS开发的核心。如果你能找到它,它可能仍然非常有价值。这是一个不可思议的库。 - Fattie
如何处理IP地址变化的情况 - remyr3my
@Cyph3r 你需要使用一些自定义逻辑来设置一个 NSString 变量,然后将其传递给 toHost 参数。或者,你可以使用域名并设置 DNS 记录,而不是使用 IP 地址,并在必要时进行更新。这完全取决于你想要做什么。 - ingh.am
2个回答

17

CocoaAsyncSocket 是一个不错的库,其中包含一个名为 AsyncUdpSocket 的类,它是对低级套接字API的Obj-C封装。


我会给你正确的答案,因为你帮助了我!对于任何阅读此问题并有相同问题的人,我在问题中发布了一些代码作为编辑。 - ingh.am
链接已更新至似乎是其在Github上的新主页:https://github.com/robbiehanson/CocoaAsyncSocket - Daniel Dickison

2

那么,要向我的服务器发送UDP数据包,我只需使用CFSocketSendData吗? - ingh.am
是的,在使用IPPROTO_UDP创建CFSocket之后,您可以使用CFSocketSendData。Mac网络编程邮件列表是寻找示例的好地方:http://lists.apple.com/archives/macnetworkprog/ - Donald
AsyncUdpSocket 简单多了! :) - ingh.am

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接