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

Java 網絡編程入門:從「打電話」理解 Client/Server、IP、端口、協議

     編輯:Java 相關知識

很多初學者覺得網絡編程高深莫測,其實核心概念生活中處處可見。本文用「打電話」類比,輕鬆透 Client/Server、IP/域名、端口、TCP/UDP、協議五大基石,助你建立直觀心智模型。

網絡編程是什麼?

本質:兩台設備按約定格式交換數據。現代多為「請求-響應」模式:一邊發請求,一邊回響應。

角色:誰打電話,誰接電話?

角色生活類比技術特徵
Client (客戶端)主動撥號的人發起連接,按需啟動
Server (服務端)保持電話暢通等待接聽的人持續監聽,長期運行

連接建立後,雙方地位平等,均可收發數據。P2P 軟體 (BT、eMule) 兩者兼具。

IP 與域名:電話號碼 vs 聯繫人名稱

  • IP 地址:設備在網絡中的唯一標識。IPv4 = 4 個 0-255 數字 (32 位);IPv6 = 128 位。分配給網卡,一機多卡多 IP。
  • 域名:給 IP 起個好記的名字 (如 google.com)。DNS 服務器負責「名字 → IP」解析。
  • 類比:IP = 身份證號,域名 = 姓名。網絡傳輸只認 IP,程序中可用域名,底層自動解析。

端口:公司總機號碼 vs 分機號

  • 一台機器跑多個程序,靠 端口 (0-65535) 區分。
  • 0-1023 系統保留 (HTTP 80, HTTPS 443, SSH 22...),應用用 1024+。
  • Socket = IP + 端口,唯一定位一個網絡程序端點。

傳輸方式:打電話 vs 發短信

協議類比特點優點缺點
TCP打電話面向連接、可靠、有序、字節流數據不丟不亂建連/維連開銷大,速度較慢
UDP發短信無連接、不可靠、無序、數據報開銷小、速度快可能丟包、亂序

實際可混合使用:視頻會議用 UDP 傳媒體流 + TCP 傳信令控制。

協議:雙方約定的「說話格式」

如電報編碼,規定:

  • 請求格式:{cmd: "LOGIN", user: "abc", pwd: "123"}
  • 響應格式:{code: 200, token: "xyz", msg: "ok"}

雙方按格式編碼發送、解碼處理,實現複雜業務交互。網絡編程的核心工作:設計協議 + 編寫編解碼代碼 + 映射業務邏輯。

小結:網絡編程三步走

  1. 建立連接:IP/域名 + 端口 → Socket
  2. 按協議交換數據:輸出流發送請求,輸入流讀取響應
  3. 數據轉業務:解析協議數據 → 業務對象 → 控制邏輯 / 更新視圖

語言層面 (Java java.net/NIO/Netty) 已封裝好連接與收發,開發者核心精力在 協議設計與業務映射。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved