Javaでポートからデータを取得する方法
Java の java.net.Socket クラスを使えばポートデータを取得できます。以下は指定したホストとポートからデータを取得する方法を示した簡単なサンプルコードです。
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class PortDataExample {
public static void main(String[] args) {
String host = "example.com"; // 目标主机
int port = 80; // 目标端口
try {
// 创建socket对象并连接到指定主机和端口
Socket socket = new Socket(host, port);
// 获取socket的输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 发送请求数据
String request = "GET / HTTP/1.1\r\nHost: " + host + "\r\n\r\n";
outputStream.write(request.getBytes());
outputStream.flush();
// 读取响应数据
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
String response = new String(buffer, 0, bytesRead);
System.out.println(response);
}
// 关闭socket和流
socket.close();
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上記の例ではまず、対象ホストとポートを指定したSocketオブジェクトを作成します。そしてSocketオブジェクトのgetInputStream()とgetOutputStream()メソッドを使って入力ストリームと出力ストリームを取得します。出力ストリームからリクエストデータを送信し、入力ストリームからレスポンスデータを読み取ります。最後に、ソケットとストリームをクローズしてリソースを解放します。
実際の利用においては、必要に応じてエラー処理、レスポンスデータの検証やパースなどを適宜行う必要があることに注意してください。