教育路上
摘要:Java 簡單 TCP 網絡 程序 ,接下來通過一個 TCP 通信的案例來進一步學習。 要實現 TCP 通信需要創建一個服務器端程序和一個客戶端程序,。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。
2022-05-18 16:39網絡推薦
}運行結果如圖 13-16 所示。
例 13-10 中,創建了一個服務器端程序,用于接收客戶端發送的數據。在創建 ServerSocke
對象時指定了端口號,并調用該對象的 accept()方法。從運行結果可以看出,命令行窗口
中的光標一直在閃動,這是因為 accept()方法發生阻塞,程序暫時停止運行,直到有客
戶端來訪問時才會結束這種陽塞狀芯。這時該方法會返回一個 Socket 類型的對象用于表示
客戶端,通過該對象獲取與客戶端關聯的輸出流并向客戶端發送信息,同時執行
Thread.sleep(5000)語句植擬服務器執行其他功能占用的時間。最后,調用
Socket 對象的 close()方法將通信結束。
例 13-10 完成了服務器端程序的編寫,接下來編寫客戶端程序,如例 13-11 所示。
例 13-11 Example05.java
import java.io.*;
import java.net.*;
public class Example05 {
public static void main(String[] args) throws Exception {
new TCPClient().connect(); // 創建 TCPClient 對象,并調用
connect()方法
}
}
//TCP 客戶端
class TCPClient {
private static final int PORT = 7788; // 服務端的端口號
public void connect() throws Exception {
//創建一個 Socket 并連接到給出地址和端口號的計算機
Socket client = new Socket(InetAddress.getLocalHost(), PORT);
InputStream is = client.getInputStream(); // 得到接收數據的流
byte[] buf = new byte[1024]; // 定義 1024 個字節數組的緩
沖區
int len = is.read(buf); // 將數據讀到緩沖區中
System.out.println(new String(buf, 0, len)); // 將緩沖區中的數據輸出
client.close(); // 關閉 Socket 對象,
釋放資源
}
}
運行結果如圖 13-17 所示。
例 13-11 中,創建了一個客戶端程序,用于向服務器端發送數據。在客戶端創建 Socket 對象與服務器端建立連接后,通過 Socket 對象獲得輸人流讀取服務端發來的數,并打印結 果,如圖 13-17 所示。同時例 13-10 中的服務端程序結束了阻塞狀態,如圖 13-18 所示, 會打印出“開始與客戶端交互數據”,然后向客戶端發出數據“傳智播客歡迎你”,在休眠 5 秒鐘后會打印出“結束與客戶端交互數據”,本次通信結束。
訪客的評論 2023/11/08 20:51
文中描述的是準確的嗎,如何報名!