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地址 staticInetAddress 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() 獲取輸出流物件,向遠端機器傳送資訊