AsyncSocket 和 AsyncUdpSocket 的区别

Posted

技术标签:

【中文标题】AsyncSocket 和 AsyncUdpSocket 的区别【英文标题】:Difference between AsyncSocket and AsyncUdpSocket 【发布时间】:2012-01-10 17:13:12 【问题描述】:

我是套接字编程的绝对初学者,我需要在我的应用程序中使用 UDP 数据包。我要去 CocoaAsyncSocket 库,因为它以其良好的品质而闻名。有一个文档似乎对该库有帮助,但不幸的是,它仅描述了 AsyncSocket,它处理 TCP,而没有说明 AsyncUdpSocket。所以我的问题是:

1)也许库的创建者没有描述 AsyncUdpSocket,因为它与 AsyncSocket 非常相似?也许我应该学习 AsyncSocket,它会让我对 AsyncUdpSocket 有很多了解?我需要知道因为我找不到任何关于 AsyncUdpSocket 的教程。你怎么看?

2)如果我的假设是正确的,并且通过学习 AsyncSocket 对我学习 AsyncUdpSocket 有帮助,那么你能告诉我它们有什么不同吗?它们之间有什么区别?我觉得提前知道一些事情对我会有帮助。

谢谢

【问题讨论】:

【参考方案1】:

相同的文档可用于 AsyncUdpSocket - 只需将 AsyncSocket 替换为 AsyncUdpSocket。 TCP 和 UDP 之间的区别在于 TCP 是基于连接的,并且具有更大的有效负载数据标头。它要求对端发回收到的消息包以继续发送有效载荷数据。 UDP 本身是一个更快的协议,因为它忽略了所有这些,并使用流线型标头尽可能快地发送有效负载数据。

tl;博士? AsyncUdpSocket 的使用方式与 AsyncSocket 相同。 TCP 速度较慢,确保数据到达,UDP 速度较快,可能会损坏数据。

如果我记得,github 源代码提供了 UDP 和 TCP 的示例。看看基于UDP的EchoServer和EchoClient。

【讨论】:

以上是关于AsyncSocket 和 AsyncUdpSocket 的区别的主要内容,如果未能解决你的问题,请参考以下文章

AsyncSocket 对我不起作用

如何修复此错误(“_OBJC_CLASS_$_AsyncSocket”,引用自:)

ios asyncsocket 无法调用 readdata 方法

AsyncSocket/GCDAsyncSocketis 的哪一部分是关于异步的?

AsyncSocket 不调用委托

如何将 AsyncSocket 实例声明为 Global