丢失WiFi网络后从套接字接收数据

时间:2010-01-25 19:11:18

标签: iphone sockets wifi

我有client/server个申请。 iPhone上的客户端,Windows-based计算机上的服务器。首先,我建立了与我的服务器的连接,并且工作正常。当我离开WiFi区域时 - 客户端断开连接(是预期的)。

但是,当我再次进入WiFi区域 并尝试连接到服务器时,建立连接但是客户端没有收到任何数据。我需要重启我的客户端应用程序才能连接到服务器。

为什么会这样?当我以大约1 Mbit / s的速度向两个方向发送数据时,总会发生这种情况。

我会感激任何想法=)

由于

2 个答案:

答案 0 :(得分:0)

当您离开Wifi区域时,Tcp检测到您没有连接,因此服务器将丢弃Tcp连接。当你回到Wifi范围时,你必须重新建立它。

我不是这方面的专家,但也许有一个时间限制,如果你重新进入Wifi,现有的Tcp连接会被重用?

但是,为了保持健壮,如果在Wifi中运行是您的主要方案之一,则应始终对应用进行编码以重试。

答案 1 :(得分:0)

您的TCP已经进入长时间超时,试图在一段时间内不存在的链接上获取数据。您需要检测到这种情况,关闭套接字并重新连接。

或者,如果您实际上不需要TCP的可靠性,请切换到使用UDP(尽管这不是它的正确名称,将UDP视为'不可靠的数据报协议',换句话说,不能保证交付,也不能保证以正确的顺序交货。)