1

LAN 経由でファイルを転送しています (JxtaSocket を使用)。

java.net.SocketTimeoutException: リモート接続からクローズ ACK を受信できませんでした。net.jxta.socket.JxtaSocket.close (JxtaSocket.java:1046) で

そもそもこうなった原因が何なのか知りたいです。1 つのファイル (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 に答える