0

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

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

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

我会很感激任何想法=)

谢谢

4

2 回答 2

0

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

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

但是,如果在 Wifi 中运行是您的主要场景之一,则为了保持稳健,您应该始终编写应用程序以重试。

于 2010-01-25T21:57:02.837 回答
0

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

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

于 2010-01-26T00:01:14.550 回答