java監(jiān)聽端口接收數(shù)據(jù)的方法是什么

小億
190
2023-09-15 01:56:32
欄目: 編程語言

在Java中,可以使用ServerSocket類來監(jiān)聽端口并接收數(shù)據(jù)。

以下是一個(gè)簡單的示例代碼:

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 {
// 創(chuàng)建ServerSocket對(duì)象,指定監(jiān)聽的端口號(hào)
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服務(wù)器啟動(dòng),等待客戶端連接...");
// 監(jiān)聽端口并接收客戶端連接
Socket socket = serverSocket.accept();
System.out.println("客戶端連接成功!");
// 獲取輸入流,用于接收數(shù)據(jù)
InputStream inputStream = socket.getInputStream();
// 創(chuàng)建一個(gè)byte數(shù)組,用于存放接收到的數(shù)據(jù)
byte[] buffer = new byte[1024];
int length;
// 循環(huán)讀取數(shù)據(jù)
while ((length = inputStream.read(buffer)) != -1) {
// 處理接收到的數(shù)據(jù)
String data = new String(buffer, 0, length);
System.out.println("接收到客戶端數(shù)據(jù):" + data);
}
// 關(guān)閉連接
socket.close();
serverSocket.close();
}
}

在上述代碼中,我們首先創(chuàng)建了一個(gè)ServerSocket對(duì)象,并指定要監(jiān)聽的端口號(hào)。然后使用accept()方法監(jiān)聽端口并接收客戶端連接,返回一個(gè)表示連接的Socket對(duì)象。接下來,我們通過Socket對(duì)象獲取輸入流,然后使用輸入流的read()方法來讀取客戶端發(fā)送的數(shù)據(jù)。最后,我們對(duì)接收到的數(shù)據(jù)進(jìn)行處理,并在控制臺(tái)上打印出來。最后,記得在程序結(jié)束后關(guān)閉連接。

這只是一個(gè)簡單的示例,真實(shí)的使用場景中可能需要考慮多線程、異常處理等。

0