私はサーバー/クライアントコーディングにかなり慣れておらず、自分自身を教えようとしているので、これが単純な場合は許してください。
私は、両方が実行されている間、正常に動作し、完全に相互作用するサーバーとクライアントを作成しました。私が遭遇した問題は、クライアントを含むアプリケーションを終了するときです。するとすぐに、次のような終わりのないエラーが発生します。
null -- Connection reset
java.net.SocketInputStream.read(SocketInputStream.java:113)
java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
java.io.BufferedInputStream.read(BufferedInputStream.java:317)
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
sun.nio.cs.StreamDecoder.read0(StreamDecoder.java:107)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:93)
java.io.InputStreamReader.read(InputStreamReader.java:151)
クライアントのソケットへの参照でメソッドを呼び出すことはclose()
、これには何の影響も及ぼさないようです。サーバーから呼び出してみif(socket.isClosed())
ましたが、クライアントが閉じた後も開いたままであると表示されます。
アプリケーションが終了したときに、ストリームとソケットを適切に閉じるにはどうすればよいですか?