我正在通过LAN传输文件(如果你听说过,使用JxtaSocket)我收到了:
java.net.SocketTimeoutException:无法从远程连接接收close ack。 在net.jxta.socket.JxtaSocket.close(JxtaSocket.java:1046)
我想知道这首先发生的原因是什么。在我发送一个文件(2.9 MB)之后,我正以正常的速度收到此异常。所有其他文件都低于1 Mb并且工作正常。
另一方面,我认为可能是JXTA的错。
任何回复都将受到高度赞赏!
答案 0 :(得分:1)
JXTA社区的一些成员在2.5版本中遇到过这样的问题,但它在2.6和2.7中已经消失了。这可以解释/解决这个问题。
答案 1 :(得分:0)
TCP是一种复杂的协议。
其中一部分是当客户端关闭其连接时,请求方(最初试图关闭的一方)必须等待来自另一方的确认,以确保远程方知道我们正在关闭连接。不幸的是,关闭握手通常不会正常发生(有时客户端只是关闭而不是正确地通过握手)。在实践中,这并不重要,因为所有重要的沟通都已完成。
这么长的故事,你最有可能看到的是一个行为不端的客户,但我不担心。
进行了很好的讨论