我尝试使用 GCDAsyncUdpPacket.m 和 .h 文件来创建 udp 通信通道。但是通过它我只能发送一行消息。我需要发送整个文件,例如图像。
任何帮助将不胜感激,因为我对这个平台完全陌生。
我尝试使用 GCDAsyncUdpPacket.m 和 .h 文件来创建 udp 通信通道。但是通过它我只能发送一行消息。我需要发送整个文件,例如图像。
任何帮助将不胜感激,因为我对这个平台完全陌生。
由于 UDP 不是一个错误检查协议,仅仅将二进制数据塞进一个 UDP 套接字是不可靠的,因为一些数据包可能会被丢弃,或者在远端乱序到达。
如果您想确保经过错误检查、有序且可靠的数据,请打开 TCP 套接字并以这种方式发送。
在 IOS 中,您可以使用 NSStream 类来执行此操作,但您必须查看大量示例代码才能了解它可以在 iPhone 应用程序中使用的各种方式。要很好地实现它,您需要了解运行循环是如何工作的(NSRunLoop)以及委托在 Cocoa 中是如何工作的。
对我来说,我倾向于避免所有这些,并在单独的 NSThread 上启动网络任务,使用 unix 的 socket()、connect() 和 send() 原语打开 TCP 套接字。一旦你让这些工作,它们可以被剪切并粘贴到其他代码中(或放入个人代码库),这样你就不必记住如何去做。:-)
对于 BSD 原语 socket()、accept()、bind()、connect()、send() 和 recv(),有很多示例代码。