Javaソケットでデータをどのように送信しますか?
Java ソケットを使用してデータを送信するには、次の手順を実行します。
- ソケットオブジェクトを作成して、接続先サーバーのホスト名とポート番号を指定します。
Socket socket = new Socket("服务器主机名", 端口号);
- データを送信用に、ソケットの出力ストリームを取得する。
OutputStream outputStream = socket.getOutputStream();
- OutputStreamWriterオブジェクトを作成し、BufferedWriterオブジェクトでラップして、より高度な書き込み操作を使用できるようにする。
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
- BufferedWriterのwrite()メソッドを使用して送信データの書き込みをバッファリングする
String data = "要发送的数据";
bufferedWriter.write(data);
- BufferedWriterのflush()メソッドでバッファリング中のデータを書き出します。
bufferedWriter.flush();
- BufferedWriterと出力ストリームを閉じる
bufferedWriter.close();
outputStream.close();
完全なコードの例:
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class SocketSender {
public static void main(String[] args) {
try {
// 创建Socket对象,并指定要连接的服务器主机名和端口号
Socket socket = new Socket("服务器主机名", 端口号);
// 获取Socket的输出流
OutputStream outputStream = socket.getOutputStream();
// 创建OutputStreamWriter和BufferedWriter对象
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
// 要发送的数据
String data = "要发送的数据";
// 将数据写入缓冲区
bufferedWriter.write(data);
// 将缓冲区的数据发送到输出流
bufferedWriter.flush();
// 关闭BufferedWriter和输出流
bufferedWriter.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
実際の運用では、接続を確立する前に、タイムアウト時間を設定する、異常を処理するなど、いくつかの追加の設定と処理が必要になる場合があるため、ご注意ください。