Java網絡編程

Java網絡編程

1 、計算機網絡的概念
      計算機網絡就是 通訊線路通訊設備將分佈在 不一樣地點的具備 獨立功能的多個計算機系統互相鏈接起來,在 網絡軟件的支持下實現彼此之間的 數據通訊資源共享的系統。
 
二、計算機網絡的劃分
     (1)按地理位置劃分:廣域網、局域網、城域網
     (2)按拓撲結構劃分:星形、總線形、環形
     (3)按傳輸介質劃分:同軸電纜網、雙絞線網、光纖網、衛星網、無線網
     (4)按通訊協議劃分:以太網(CSMA/CD協議)、令牌環網(令牌環協議)、Internet網(TCP/IP協議)
     (5)按寬帶速率劃分:低速網、中速網、高速網
 
      
三、網絡編程的架構
 
幾種經常使用的Android網絡框架:
    (1)android_async_http: HTTP請求發生在UI線程以外,自動智能請求重試,優化了質量不一的移動鏈接,自動解碼支持gzip反應速度超快的請求,持久化cookie存儲,保存cookie到你的應用程序的SharedPreferences。
    (2)http_request: 在小型的項目上性能表現最好,若是你的項目不是很大,這個框架是一個不錯的選擇。
    (3)okhttp: 使用 OkHttp 無需重寫你程序中的網絡代碼。OkHttp實現了幾乎和java.net.HttpURLConnection同樣的API。若是你用了 Apache HttpClient,則OkHttp也提供了一個對應的okhttp-apache 模塊
    (4) retrofit: 是一個類型安全的 REST 客戶端。
    (5)Netroid: 一個基於 Volley 實現的Android Http庫。提供執行網絡請求、緩存返回結果、批量圖片加載、大文件斷點下載的常見Http交互功能。致力於避免每一個項目重複開發基礎Http功能,實現顯著地縮短開發週期的願景。
 
四、網絡的OSI分層思想【 國際標準化組織(ISO)
   
網絡分層
 
      網絡分層就是將網絡節點所要完成的數據的發送或轉發、打包或拆包、控制信息的加載或拆出等工做,分別由不一樣的硬件和軟件模塊去完成.這樣能夠將往來通訊和網絡互連這一複雜的問題變得較爲簡單. 
 
     OSI(Open System Interconnection),即開放式系統互聯。
 
     ISO提出的OSI(Open System Interconnection)模型將網絡分爲七層,即物理層( Phisical )、數據鏈路層(Data Link)、網絡層(Network)、傳輸層(Transport)、會話層(Session)、表示層(Presentation)和應用層(Application).
 
五、 什麼是網絡編程?

  網絡編程:使用編程語言實現多臺計算機的通訊。java

 
六、網絡編程三要素
     

(1)IP地址:android

(3)協議:
用生活中的例子說明:假如我要和小明說話,首先我要到小明的住址找到小明(至關於經過IP找到指定計算機);以後我要和小明說話,小明用耳朵聽我說(至關於用端口接收);而咱們對話不能使用鳥語,須要做出規定彼此都要使用都能聽懂的普通話(這就是協議的做用了)。
 
 IP地址
由四個字節32位的數字組成(ps:192.168.1.1),在InetAddress獲取ip地址和主機名,127.0.0.l 和localhost都表示本機地址。
 
端口
0~1024是系統程序的端口號(ps:80  網絡端口)因此在寫本身程序的時候使用端口號應該是:1024~65535
 
協議
TCP
面向鏈接,三次握手
安全性高,效率低
TCP協議發送數據是沒有大小限制的
 
UDP
無鏈接協議
安全性低,效率高
UDP協議發送數據的時候,用的是數據報包的形式。大小是在64KB之內
 
Socket 套接字
網絡上具備惟一標識的IP地址和端口組合在一塊兒才能構成惟一能識別的標識符套接字。
 
Socket原理機制:
 
一、通訊的兩端都有Socket
 
二、網絡通訊其實就是Socket間的通訊
 
三、數據在兩個Socket間經過IO傳輸
 

七、Java中的網絡支持apache

針對網絡通訊的不一樣層次,Java提供了不一樣的API,其提供的網絡功能有四大類:編程

InetAddress:用於標識網絡上的硬件資源,主要是IP地址緩存

URL:統一資源定位符,經過URL能夠直接讀取或寫入網絡上的數據安全

Sockets:使用TCP協議實現的網絡通訊Socket相關的類服務器

 
Datagram:使用UDP協議,將數據保存在用戶數據報中,經過網絡進行通訊
 
 
UDP協議的通訊
發送端:
一、創建DatagramSocket對象
二、將數據封裝到數據包中
三、發送數據包
四、關閉資源
 
接收端:
一、創建DatagramSocket對象
二、定義一個空的數據包
三、接受數據包
四、解析數據包
五、關閉資源
 
 
 
TCP協議的通訊 (C/S模式、Socket套接字)
服務端:
一、 建立ServerSocket對象,綁定監聽端口
二、 經過accept()方法監聽客戶端請求,等待客戶端的鏈接,返回一個Socket對象
三、 鏈接創建後,經過輸入流向接收客服端端發送請求信息
四、 經過輸入出流返回服務器響應的信息
五、關閉資源
 
客戶端:
一、創建Socket對象, 指明須要鏈接的服務器的地址和端口號
二、 鏈接創建後,經過輸出流向服務器端發送請求信息
三、 經過輸入流獲取服務器響應的信息
四、關閉資源
 
相關文章
相關標籤/搜索