在Java中可以使用Socket來監聽端口并接收發送信息。以下是一個簡單的例子:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("Server listening on port 1234...");
Socket socket = serverSocket.accept();
System.out.println("Client connected");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String message = in.readLine();
System.out.println("Client: " + message);
out.println("Hello from server");
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的例子中,我們創建了一個ServerSocket對象來監聽端口1234,然后調用accept()方法等待客戶端連接。一旦有客戶端連接到服務器,我們就會創建一個Socket對象來和客戶端進行通信。通過輸入輸出流,我們可以接收來自客戶端的消息并發送消息給客戶端。最后,記得關閉Socket和ServerSocket對象。
如果你想要編寫一個客戶端來連接到這個服務器并發送消息,可以使用以下代碼:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 1234);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello from client");
String message = in.readLine();
System.out.println("Server: " + message);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在客戶端代碼中,我們創建了一個Socket對象來連接到localhost的1234端口,然后通過輸入輸出流來發送消息給服務器并接收服務器返回的消息。
這只是一個簡單的示例,實際應用中可能需要更多的處理邏輯和異常處理。希望這個例子對你有幫助!