6

2 つのソケットがある TCP 経由で Java クライアント/サーバー アプリケーションを作成しています。

  • 1つはメッセージ交換用です。
  • 2 つはファイル転送用です。


ServerSocketsを受け入れてソケット 1 と 2 を作成するために、サーバーに 2 つの ServerSockets を作成しました 。

最初に、クライアントは最初のソケットを介していくつかのバイトを送信し、
必要なファイルをサーバーに伝えることができます。

次に、サーバーは 2 番目のソケットを介してファイルをクライアントに送信します。
クライアントがファイルを受信した後、転送完了メッセージをサーバーに送り返そうとします。

そこで、閉じたソケットの例外が発生します。
ただし、今までソケットを閉じたことはありません。
ファイルを送信したバッファのみを閉じます。
ファイルを送信した後に socketInputStream を再度開こうとしても、エラーは同じです。
また、ファイルを送信したバッファを閉じないと、クライアントはファイルを取得できません。

サーバー例外

戻りメッセージのエラー - java.net.SocketException: ソケットが閉じられました

クライアント例外

サーバーの応答 - java.net.SocketException: ソフトウェアが原因で接続が中止されました: ソケット書き込みエラー

私は何を間違っていますか?

4

1 に答える 1