0

我有两部手机连接到一个 Wifi 接入点,它们的 ip 都在私有范围内。其中一部手机上运行着 HTTP 服务器,而另一部手机则充当客户端。客户端将 GET 请求数据作为 URL 查询字符串中的名称/值对发送到服务器。目前,服务器仅在接收到查询字符串时在 HTTP.OK 上发送。

正在发生的事情是客户端可能不是静止的并且可能四处移动,因此它可能无法始终处于 Wifi 接入点的范围内,因为我没有在服务器端获取从客户端发送的所有数据. 我想确保服务器实际接收到所有发送的数据。

我应该实施什么样的纠错?我可以检查一些相关的 HTTP 错误代码等吗?

4

3 回答 3

1

您需要检查客户端上的超时。这取决于使用的流程/语言。

编辑:http ://wiki.forum.nokia.com/index.php/Using_Http_and_Https_in_Java_ME

看起来您只需设置超时并捕获 IO 错误。

于 2010-01-10T01:34:42.773 回答
1

如果 HTTP 服务器在 GET 请求中没有接收到整个查询字符串,那么 HTTP 请求不可能是有效的,因为这些参数位于请求的第一行。

服务器将无法处理请求,在这种情况下可能会返回状态代码 400(错误请求)。

如果您的客户端收到此消息(这似乎不太可能无法传输请求,但仍会收到响应),那么您将知道重新传输。一般来说,TCP 连接的属性,如自动重传、校验和和超时应该是成功传递或确定失败所需的全部。

于 2010-01-10T01:41:39.530 回答
1

过早的优化。

连接完整性已在网络堆栈的较低部分处理。因此,如果请求中间有任何丢失(假设它跨越多个数据包),TCP 堆栈将在将数据传递到服务器之前尝试恢复它们。

如果您需要向自己证明这一点,那么只需添加一个校验和作为查询的最后一部分。

C。

于 2010-01-11T12:48:33.807 回答