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

Java Socket 程式設計(二)-3:TCP 客戶端完整實作與資源管理

     編輯:Java 相關知識

完整客戶端程式碼

import java.io.*;
import java.net.*;

public class SimpleWebClient {
    public static void main(String[] args) {
        try (Socket socket = new Socket("localhost", 80);
             DataOutputStream out = new DataOutputStream(socket.getOutputStream());
             DataInputStream in = new DataInputStream(socket.getInputStream())) {

            out.writeBytes("GET / HTTP/1.0\r\n\r\n");
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
        } catch (UnknownHostException e) {
            System.err.println("主機解析失敗: " + e.getMessage());
        } catch (IOException e) {
            System.err.println("I/O 錯誤: " + e.getMessage());
        }
    }
}

關鍵改進點

  • try-with-resources:Java 7+ 自動關閉資源,避免洩漏
  • 異常分類處理:區分 DNS 解析失敗與 I/O 錯誤
  • 正確的 HTTP 請求格式:以 \r\n\r\n 結束請求頭

常見埠號對照表

服務埠號
echo7
daytime13
FTP21
telnet23
SMTP25
finger79
HTTP80
POP3110
HTTPS443

最佳實務總結

  1. 指定正確主機與埠號建立 Socket
  2. 使用緩衝資料流提升效能
  3. 遵循應用層協定格式(如 HTTP)
  4. 妥善處理異常與資源釋放
  5. 設定連線與讀取逾時避免無限阻塞
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved