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

TCP網絡編程入門:127.0.0.1與端口號深度解析

     編輯:程式設計綜合問答

代碼片段

Socket socket = new Socket("127.0.0.1", 8998);

127.0.0.1 詳細解釋

  • 回環地址:指向本機網卡的虛擬接口
  • 不經過網卡:數據包在內核直接從輸出隊列轉入輸入隊列
  • 等價於:localhost、::1(IPv6)
  • 用途:本地進程間通信、開發測試、服務本地綁定

端口號 8998 含義

  • 標識進程:IP定位主機,端口定位進程
  • 範圍:0-65535(0-1023為系統保留)
  • 選擇原則:
      li>避開常用端口(80, 443, 3306, 27017等)
    1. 避開系統保留範圍
    2. 確保未被佔用(netstat -an | grep 8998)
    3. 項目組內統一規範

Socket建立完整流程

// 客戶端
Socket socket = new Socket("127.0.0.1", 8998);
// 1. 創建Socket對象
// 2. 三次握手建立TCP連接
// 3. 返回已連接Socket,可進行IO操作

// 服務端對應
ServerSocket server = new ServerSocket(8998);
Socket client = server.accept(); // 阻塞等待連接

常見問題排查

最佳實踐

  1. 配置文件管理IP/端口,避免硬編碼
  2. 生產環境綁定具體IP而非0.0.0.0
  3. 使用連接池管理Socket生命周期
  4. 設置合理的SO_TIMEOUT避免無限阻塞

理解「IP找機器,端口找進程」是網絡編程的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象可能原因解決
Connection refused服務端未啟動/端口錯誤檢查服務進程、端口配置
BindException端口被佔用換端口/kill佔用進程
Timeout防火牆/網絡不通檢查防火牆規則、路由