我有client/server
个申请。 iPhone
上的客户端,Windows-based
计算机上的服务器。首先,我建立了与我的服务器的连接,并且工作正常。当我离开WiFi区域时 - 客户端断开连接(是预期的)。
但是,当我再次进入WiFi
区域 并尝试连接到服务器时,建立连接但是客户端没有收到任何数据。我需要重启我的客户端应用程序才能连接到服务器。
为什么会这样?当我以大约1 Mbit / s的速度向两个方向发送数据时,总会发生这种情况。
我会感激任何想法=)
由于
答案 0 :(得分:0)
当您离开Wifi区域时,Tcp检测到您没有连接,因此服务器将丢弃Tcp连接。当你回到Wifi范围时,你必须重新建立它。
我不是这方面的专家,但也许有一个时间限制,如果你重新进入Wifi,现有的Tcp连接会被重用?
但是,为了保持健壮,如果在Wifi中运行是您的主要方案之一,则应始终对应用进行编码以重试。
答案 1 :(得分:0)
您的TCP已经进入长时间超时,试图在一段时间内不存在的链接上获取数据。您需要检测到这种情况,关闭套接字并重新连接。
或者,如果您实际上不需要TCP的可靠性,请切换到使用UDP(尽管这不是它的正确名称,将UDP视为'不可靠的数据报协议',换句话说,不能保证交付,也不能保证以正确的顺序交货。)