与某些接口的 UDP 通信(使用 UDP Echo 示例代码,main.m 有问题)

Posted

技术标签:

【中文标题】与某些接口的 UDP 通信(使用 UDP Echo 示例代码,main.m 有问题)【英文标题】:UDP communication with some interface (using UDP Echo sample code, problem with main.m) 【发布时间】:2011-02-09 19:38:04 【问题描述】:

我已经从 Apple 下载了 UDPEcho 示例代码,用于与设备建立简单的 UDP“连接”。我能够在提供的 main.m 上设置设备的 ip 和端口进行“连接” .分析我的控制台,我什至从我从 main.m 发送的所有内容中得到了设备的积极响应。

我的问题是 main.m 没有加载任何 .xib。我试图修改它并放置 UIApplicationMain (argc,argv,nil,nil) 和其他东西,但在这种情况下,我得到了我的默认 .xib (使用我的 PrjctViewController )来加载,但我在控制台上没有得到任何响应。在这种情况下,根本就没有 UDP 连接。

我如何使用 UDPEcho 示例来设置与某些用户界面的简单 UDP“连接”?一些简单的事情,比如用户能够输入 ip 和端口并从设备获得一些响应以显示在屏幕上。通信不是问题,因为我在控制台中得到响应,整个问题是在使用此示例代码时设置一些简单的界面。我不知道如何在保持连接的同时“覆盖” main.m 以加载 .xib。我已经尝试将 main.m 中的所有函数传递给我的 PrjctViewController 但这似乎并没有解决我的问题。如果有人有一些例子可以向我展示或启发我的想法,我将非常感激。

【问题讨论】:

【参考方案1】:

在应用启动、视图控制器初始化或按钮事件委托之一中启动连接。异步处理连接,或者在后台线程中处理,以免阻塞UI线程。

【讨论】:

【参考方案2】:

不要在 main.m 中进行连接。像往常一样创建您的 iPhone 应用程序,并将连接创建代码移动到用户输入的处理函数中。例如,用户输入 IP 等并单击“开始”按钮。而是将连接设置放入“Go”按钮的处理程序中。

【讨论】:

感谢您的意见!我肯定在使用你的方法,但现在在后台线程中能够刷新 UI ..【参考方案3】:

对于未来的项目,请查看CocoaAsyncSocket

CocoaAsyncSocket 为 Mac 和 ios 提供易于使用且功能强大的异步套接字库。类如下所述。

GCDAsyncUdpSocket 和 AsyncUdpSocket 是 UDP/IP 套接字网络库。

【讨论】:

以上是关于与某些接口的 UDP 通信(使用 UDP Echo 示例代码,main.m 有问题)的主要内容,如果未能解决你的问题,请参考以下文章

Linux 下的 UDP 编程

通信协议 HTTP TCP UDP

udp通信

udp通信

python 网络通信协议/TCP,UDP区别

第二十七天- 网络通信协议 TCP UDP 缓冲区