1. 程式人生 > >『黑馬程式設計師』---java--網路程式設計--客戶端和服務端

『黑馬程式設計師』---java--網路程式設計--客戶端和服務端

----------- android培訓java培訓、java學習型技術部落格、期待與您交流! ------------

演示客戶端和服務端

1,

客戶端:瀏覽器(telnet)

服務端:自定義

瀏覽器其實就是一個客戶端(瀏覽器客戶端-自定義服務端)


注意:本機測試,自定義客戶端中必須在服務戶端打印出對方ip,IE中才可以讀出”客戶端你好”

擴充套件:

Win中遠端工具,連線網路中的任意一臺主機.Telnet[也是一個客戶端]



2,

客戶端:瀏覽器(telnet)

服務端:Tomcat

Tomcat是純java編寫的一個服務端軟體,他裡面其實就是封裝了Socket.

簡單截圖,

沒必要細看……..


3,

客戶端:自定義

服務端:Tomcat伺服器

思考,瀏覽器在訪問伺服器時,給服務端傳送了什麼資料?

在自定義的服務端中,將客戶端中發給服務端的資料讀出來.


HTTP請求訊息頭


Accept-Encoding:gzip,deflate(提高效率,支援gzip壓縮)

請求資料體和請求資料頭,中間要有一個空行.標準..

自己按照上面,分析.自己做一個ie客戶端,訪問以下Tomcat伺服器


注意,Connection:”Keep-Alive”的話,伺服器會保持連線,不會立刻關閉.


簡單優化,自定義瀏覽器:


應答訊息頭出現,是因為,我們走的是傳輸層….ie走的是應用層

,他已經把響應訊息頭處理了

深層優化,自定義瀏覽器:

java.net 
類 URL

類 URL 代表一個統一資源定位符,它是指向網際網路資源的指標。資源可以是簡單的檔案或目錄,也可以是對更為複雜的物件的引用,例如對資料庫或搜尋引擎的查詢。
擴充套件URI也是資源定位符,URI的範圍比URL.

注意:


給力方法: (自動幫你連線URL,,,,,,)玩3G也用的上

openConnection()
     返回一個 URLConnection 物件,它表示到 URL 所引用的遠端物件的連線。

openStream() 
          開啟到此 URL 的連線並返回一個用於從該連線讀入的 InputStream。


openStream() 方法,就是:openConnection().getInputStream()

一般,分開寫,因為,URLConnection中會提供更多方法.來操作……

java.net 
類 URLConnection

直接已知子類: 

帶著協議封裝Socket,去掉響應頭.直接跨到應用層……


域名解析:


小知識擴充套件:


在建立ServerSocket,構造方法,中還有個引數------Backlog[控制線上客戶端]