1. 程式人生 > >201711671223《Java程式設計》第十二週學習總結13章Java網路程式設計

201711671223《Java程式設計》第十二週學習總結13章Java網路程式設計

201711671223《Java程式設計》第十二周學習總結13章Java網路程式設計

URL類(Uniform Resource Locator)是java.net包中的一個重要的類,URL的例項封裝著一個統一資源定位符,使用URL建立物件的應用程式稱作客戶端程式。 一個URL物件通常包含最基本的三部分資訊:協議、地址、資源。

URL類通常使用如下的構造方法建立一個URL物件:

public URL(String spec) throws MalformedURLException
public URL(String protocol, String host,String file) throws MalformedURLException

URL物件呼叫 InputStream openStream()方法可以返回一個輸入流,該輸入流指向URL物件所包含的資源。通過該輸入流可以將伺服器上的資源讀入到客戶端。

InetAdress類

Internet上的主機有兩種方式表示地址:

  1. 域名:例如  www.tsinghua.edu.cn 

     2、IP地址:例如 202.108.35.210,java.net包中的InetAddress類物件含有一個Internet主機地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40 。 可以使用InetAddress類的靜態方法getByName(String s);獲得一個InetAddress物件,該物件含有主機地址的域名和IP地址,該物件用如下格式表示它包含的資訊。可以使用InetAddress類的靜態方法getLocalHost()獲得一個InetAddress物件,該物件含有本地機的域名和IP地址。

套接字,IP地址標識Internet上的計算機,埠號標識正在計算機上執行的程序(程式)。埠號被規定為一個16位的0~65535之間的整數。 當兩個程式需要通訊時,它們可以通過使用Socket類建立套接字物件並連線在一起(埠號與IP地址的組合得出一個網路套接字)。客戶端的程式使用Socket類建立負責連線到伺服器的套接字物件。getInputStream()獲得一個輸入流 ;getOutputStream()獲得一個輸出流 ;用getInputStream()得到的輸入流接到另一個DataInputStream資料流上;用getOutputStream()得到的輸出流接到另一個DataOutputStream資料流上 。

為了防止堵塞執行緒,伺服器端收到一個客戶的套接字後,就應該啟動一個專門為該客戶服務的執行緒。

基於UDP的通訊和基於TCP的通訊不同,基於UDP的資訊傳遞更快,但不提供可靠性保證。 基於UDP通訊的基本模式是:

將資料打包,稱為資料包(好比將信件裝入信封一樣),然後將資料包發往目的地。接受別人發來的資料包(好比接收信封一樣),然後檢視資料包中的內容。用DatagramPacket類將資料打包,用DatagramSocket類的不帶引數的構造方法:DatagramSocket()建立一個物件,該物件負責傳送資料包。用DatagramSocket的另一個構造方法DatagramSocket(int port) 建立一個物件,其中的引數必須和待接收的資料包的埠號相同 ,然後物件mail_in使用方法receive(DatagramPacket pack)接受資料包。

廣播資料報是一種較新的技術,要廣播或接收廣播的主機都必須加入到同一個D類地址。 Java遠端呼叫,RMI(Remote Method Invocation)是一種分散式技術,使用RMI可以讓一個虛擬機器(JVM)上的應用程式請求呼叫位於網路上另一處的JVM上的物件方法。習慣上稱發出呼叫請求的虛擬機器(JVM)為(本地)客戶機,稱接受並執行請求的虛擬機器(JVM)為(遠端)伺服器。