JavaでTCPソケットの出力ストリームを閉じる方法


ソケットの出力ストリームを閉じることは、データの送信が完了したことを示します。ただし、ソケット自体はまだオープンのままです。以下に、ソケットの出力ストリームを閉じるためのシンプルで簡単な方法とコード例を示します。

import java.io.IOException;
import java.net.Socket;
public class SocketExample {
    public static void main(String[] args) {
        Socket socket = null;
        try {
            // ソケットを作成する
            socket = new Socket("ホスト名", ポート番号);
            // 出力ストリームを取得する
            OutputStream outputStream = socket.getOutputStream();
            // データを送信する
            outputStream.write(データ);
            // 出力ストリームを閉じる
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // ソケットを閉じる
            if (socket != null) {
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

上記のコード例では、SocketクラスのgetOutputStream()メソッドを使用して出力ストリームを取得し、データを送信します。データの送信が完了した後、outputStream.close()を呼び出して出力ストリームを閉じます。

また、finallyブロックでソケットを閉じることも重要です。ソケットを閉じることで、リソースの解放やネットワーク接続の終了が行われます。