Javaを使用してネットワーク接続をリッスンする方法
ネットワーク接続をリッスンするには、Javaのソケットプログラミングを使用できます。
以下は、JavaのSocketでネットワークからの接続をリッスンする方法を示す、簡単なサンプルコードです。
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class NetworkListener {
public static void main(String[] args) {
try {
// 创建ServerSocket,指定监听的端口
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("Listening for incoming connections...");
while (true) {
// 接收客户端的连接请求
Socket socket = serverSocket.accept();
// 创建一个新线程处理每个连接
Thread thread = new Thread(() -> {
try {
// 获取输入流,读取客户端发送的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead;
StringBuilder stringBuilder = new StringBuilder();
while ((bytesRead = inputStream.read(buffer)) != -1) {
stringBuilder.append(new String(buffer, 0, bytesRead));
}
System.out.println("Received data: " + stringBuilder.toString());
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
});
thread.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
このコードは、ServerSocketオブジェクトを作成し、监听するポート(ここでは8080)を指定します。次に、accept()メソッドを呼び出して、クライアントからの接続要求を受信します。新しい接続が受信されるたびに、その接続を処理するために新しいスレッドが作成されます。処理スレッドでは、入力ストリームを取得し、クライアントから送信されたデータを読み取り、それに応じた処理を行います。最後に、socket.close()を呼び出して接続を閉じます。