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

伺服器與客戶端架構:網路通訊的雙人舞

     編輯:Java 相關知識

核心精神:兩機連線與雙向對話

網路最基本精神:讓兩台機器連線並相互「交談」。一旦雙方發現彼此,即可展開雙向對話。但如何「發現」?如遊樂園般:一台機器必須留在原地偵聽,另一台到處「找人」。

  • 留在原地偵聽的: 伺服器
  • 到處找人的: 客戶端

兩者差異僅在客戶端嘗試連接伺服器時明顯。一旦連通,變成雙向通訊,誰扮演伺服器/客戶端便不那麼重要。

角色職責

  • 伺服器: 偵聽建立連線請求,由特定伺服器物件完成
  • 客戶端: 嘗試與伺服器建立連線,由特定客戶端物件完成

連線建立後,無論伺服器端或客戶端,連線只是魔術般變成 IO 資料流物件。此後可像讀寫普通檔案那樣處理連線——這正是 Java 網路程式設計最方便之處。

無網路環境下的測試:localhost

多種原因可能導致無客戶端、伺服器、網路測試環境。IP 設計者建立特殊位址 localhost 滿足非網路測試需求。Java 中產生此位址最常用做法:

InetAddress addr = InetAddress.getByName(null);

傳遞 null 給 getByName() 預設使用 localhost。用 InetAddress 索引特定機器,進一步操作前必須取得此物件。不可操縱其內容(但可列印)。建立 InetAddress 唯一途徑是該類的 static 成員方法:getByName()(最常用)、getAllByName() 或 getLocalHost()。

取得本地主機位址的三種等效方式

  1. InetAddress.getByName("localhost")
  2. InetAddress.getByName("127.0.0.1")(四點格式保留 IP)
  3. InetAddress.getByName(null)(預設 localhost)

三種方法結果相同。

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