1

我正在跨 LAN 传输文件(使用 JxtaSocket,以防您听说过),我收到:

java.net.SocketTimeoutException:无法从远程连接接收关闭确认。在 net.jxta.socket.JxtaSocket.close(JxtaSocket.java:1046)

我想知道首先发生这种情况的原因是什么。在我发送一个文件(即 2.9 mb)之后,我以正常的速度收到此异常。所有其他文件都在 1 Mb 以下并且工作正常。

另一方面,我想这可能是 JXTA 的错。

任何回应将不胜感激!

4

2 回答 2

1

JXTA 社区的一些成员在 2.5 版中遇到过此类问题,但在 2.6 和 2.7 版中已经消失。这可以解释/解决这个问题。

于 2011-02-10T03:39:53.627 回答
0

TCP是一个复杂的协议。

其中一部分是当客户端关闭他们的连接时,请求方(最初试图关闭的一方)必须等待来自另一方的关闭确认,以确保远程方知道我们正在关闭连接。不幸的是,关闭握手不能正确发生是很常见的(有时客户端只是关闭而不是正确地进行握手)。实际上,这并不重要,因为所有重要的通信都已完成。

长话短说,您在这里最有可能看到的是一个行为不端的客户,但我不会担心。

维基百科对TCP 连接终止协议有很好的讨论

于 2010-06-09T14:51:32.983 回答