1. 程式人生 > >java-se-網路程式設計

java-se-網路程式設計

網路程式設計:     java語言中,提供了一套統一的程式設計介面,其中很多細節都已經底層化,可以進行無痛的網路通訊程式設計,提供了Socket套接字技術。

常用的通訊協議:     (1)TCP/IP:在通訊之前,需要建立連線,通訊之後需要斷開連線, 一般會有一個做為伺服器端,有一個做為客戶端         主要將通訊模式分成四層:                      應用層                 傳輸層                 IP層               程式設計介面層                                (2)UDP:不需要建立連結,相對來說,開銷比較小,效率高。         型別:java.net.InetAddress提供了用於獲取和描述主機和IP的資訊功能         常用方法:

            static    InetAddress getByName(String    host)                   返回一個指定字串主機的地址物件                 主機名:可以使用IP來描述,還可以使用域名來描述(通常域名會繫結一個IP地址)                String    getHostName():                 返回用於描述主機的字串名稱             String    getHostAddress():                 返回用於描述主機的IP地址             static
    InetAddress getLocalHost():                 返回本地主機地址物件 

套接字程式設計:     (1)Socket:         在客戶端使用,連線成功後會獲取一個Socket物件     (2)ServerSocket:         在伺服器端使用建立伺服器端套接字物件,當被連線成功後,會獲取一個Socket物件。         注意:通訊時使用各自獲取的Socket物件來通訊的。    

程式設計步驟:     (1)伺服器物件     (2)伺服器等待被連線     (3)客戶端連線伺服器(成功與否)     (4)客戶端與伺服器進行通訊     (5)斷開連線               

埠號:     是一個16位的無符號二進位制整數,範圍0~65535。和IP一起是用來指定一個執行中程式的位置。埠號是執行中程式的唯一識別符號,程式執行時,埠號不能碰撞。通常0~1023是作業系統預定義的埠號,所以在自定義時,應該儘可能的使用1024~65535範圍內的數。  

ServerSocket類的使用:     構造器:         ServerSocket(int    port);             建立一個指定埠號的ServerSocket物件     常用方法:         Socket    accept():             等待客戶端連線,返回客戶端的Socket物件          void    close()                     關閉此套接字             InetAddress    getInetAddress()             獲取伺服器端的本地地址         int    getLocalPort()             獲取伺服器端的埠號         SocketAddress    getLocalSocketAddress()             返回此套接字繫結到的端點的地址。               Socket類的使用:     構造器:         Socket(String    host,int    port)             向指定主機名和指定埠號的服務傳送請求連線,連線成功,會獲取Socket物件。     常用方法:         void    close()             關閉套接字                 InetAddress    getInetAddress()              返回套接字所連線伺服器的地址。         int     getPort()             返回套接字所連線遠端機器的埠號         int     getLocalPort()             返回本地的埠         InputStream    getInputStream()             獲取輸入流物件,接收遠端機器傳送的資訊         OutputStream    getOutputStream()             獲取輸出流物件,向遠端機器傳送資訊