首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

基於 TCP 協議的客戶端實現

     編輯:Java 綜合教學

專案簡介

此 TCP 客戶端可連接單線程或多線程服務器(端口 8089),實現基本的文本聊天功能。採用 Socket 長連接,使用獨立定時任務輪詢接收服務器消息,主線程負責發送。

核心架構

連接建立

Socket socket = new Socket(serverIp, 8089);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

異步接收消息

使用 Timer 每 200ms 執行一次 TimerTask,調用 in.readLine() 讀取服務器推送的消息並打印。

class JieShou extends TimerTask {
    public void run() {
        try {
            String msg = in.readLine();
            if (msg != null) System.out.println(msg);
        } catch (Exception e) { /* 忽略 */ }
    }
}

主循環發送消息

while (true) {
    Scanner scanner = new Scanner(System.in);
    out.println(userName + ": " + scanner.next());
}

注意事項

  • 輸入流讀取使用 readLine(),要求消息以換行符結尾。
  • 關閉資源在 finally 塊中調用 socket.close()。
  • 此客戶端需配合對應的服務器端代碼運行(單線程或多線程版)。

擴展建議

  • 改用 NIO 非阻塞 I/O 提升併發性能。
  • 增加心跳機制檢測連接狀態。
  • 實現私聊、群聊、文件傳輸等協議擴展。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved