javaでポートをリッスンしてデータを受け取る方法は?

Java ではServerSocketクラスを使用してポート監視やデータ受信を行うことができます。

以下に簡単なコード例を示します。

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// 创建ServerSocket对象,指定监听的端口号
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动,等待客户端连接...");
// 监听端口并接收客户端连接
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功!");
// 获取输入流,用于接收数据
InputStream inputStream = socket.getInputStream();
// 创建一个byte数组,用于存放接收到的数据
byte[] buffer = new byte[1024];
int length;
// 循环读取数据
while ((length = inputStream.read(buffer)) != -1) {
// 处理接收到的数据
String data = new String(buffer, 0, length);
System.out.println("接收到客户端数据:" + data);
}
// 关闭连接
socket.close();
serverSocket.close();
}
}

ServerSocketオブジェクトを作成し、監視するポート番号を指定します。acceptメソッドを使用してポートを監視し、クライアントの接続を受信し、接続を示すSocketオブジェクトを返します。次に、Socketオブジェクトから入力ストリームを取得し、入力ストリームのreadメソッドを使用してクライアントが送信したデータを読み取ります。最後に、受信したデータを処理してコンソールに表示します。最後に、プログラム終了時に接続を閉じます。

これは簡単な例ですが、実際にはマルチスレッド、例外処理などを考慮する必要があるかもしれません。

bannerAds