在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()方法來讀取客戶端發送的數據。最后,我們對接收到的數據進行處理,并在控制臺上打印出來。最后,記得在程序結束后關閉連接。
這只是一個簡單的示例,真實的使用場景中可能需要考慮多線程、異常處理等。