【发布时间】:2012-01-28 17:10:36
【问题描述】:
我创建了几个实验:
设置 1:我创建了一个 TCP Sender 应用和一个 TCP Receiver 应用。
对于这个实验,我在一个 iOS 设备上启动了 TCP Sender,在另一个 iOS 设备上启动了 TCP Receiver。然后验证两者都已建立连接并发送和接收数据。然后我将 TCP Receiver 应用程序置于后台。 TCP Sender 应用程序指示失去连接并崩溃(是的,我打算那样做)。
设置 2:我创建了一个 UDP Sender 应用和一个 UDP Receiver 应用。
同上,我在 iOS 设备上启动了 UDP Sender 应用程序,在另一台 iOS 设备上启动了 UDP Receiver 应用程序。在 UDP Receiver 应用程序上,我订阅了一个多播组等。我验证了 UDP Receiver 应用程序正在接收来自 UDP Sender 应用程序发送的该多播组的数据。然后我将 UDP Receiver 应用程序置于后台。 2 分钟后,我让 UDP Sender 应用程序发送另一条数据。然后我完全退出 UDP Sender 应用程序并关闭该 iOS 设备。然后我再等待 2 分钟或更长时间,然后从后台启动 UDP Receiver 应用程序。 UDP Receiver 应用在终止之前确实收到了 UDP Sender 应用发出的数据。
在setup1中,我的解释是因为TCP是面向连接的。
在 setup2 中,我了解 UDP 是无连接的。任何解释为什么 setup2 它在我的经验中起作用? (即使在后台模式下仍然接收数据)
【问题讨论】:
标签: ios tcp network-programming udp network-protocols