20165234 《Java程序設計》第九周學習總結

第九周學習總結

教材內容學習

第十三章 Java 網絡編程

  • URL 類

URL 類是 java.net 包中的一個重要的類,使用URL建立對象的應用程序稱爲客戶端程序。java

一個 URL 對象一般包含最基本的三部分信息:協議、地址和資源。git

協議必須是 URL 對象所在的 Java 虛擬機支持的協議,地址必須是能鏈接的有效 IP 地址或域名,資源能夠是主機上的任何一個文件。編程

  • URL 的構造方法

URL 類一般使用以下的構造方法建立一個 URL 對象: public URL(String spec)throws MalformedURLException 服務器

該構造方法使用字符串初始化一個 URL 對象,例如:網絡

try { URL url = new URL("http://www.google.com");
}
catch (MalformedURLException e) {
  System.out.println ("Bad URL:"+url);
}

注:上述 url 對象中,協議是 http,包含的地址是 www.google.com,包含的資源是默認的資源(主頁)。多線程

另外一個經常使用的構造方法: public URL(String protocol, String host,String file) throws MalformedURLException ,該構造方法使用的協議、地址和資源分別由參數 protocol、host 和 file 指定。socket

  • 讀取URL中的資源

URL 對象調用 InputStream openStream() 方法能夠返回一個輸入流,該輸入流指向 URL 對象所包含的資源。學習

經過該輸入流能夠將服務器上的資源信息讀入到客戶端。google

  • InetAddress 類

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 。url

  • 套接字

IP地址標識Internet上的計算機,端口號標識正在計算機上運行的進程(程序)。端口號被規定爲一個16位的0~65535之間的整數。
當兩個程序須要通訊時,它們能夠經過使用Socket類創建套接字對象並鏈接在一塊兒(端口號與IP地址的組合得出一個網絡套接字)。

  • 客戶端套接字

客戶端的程序使用Socket類創建負責鏈接到服務器的套接字對象。

創建鏈接到服務器的套接字對象:

try{  Socket mysocket=new Socket(「http://192.168.0.78」,1880);
}
catch(IOException e){  } 

與mysocket相關的方法

 getInputStream() :得到一個輸入流 

 getOutputStream() :得到一個輸出流 

 用getInputStream() :獲得的輸入流接到另外一個DataInputStream數據流上

 用getOutputStream() :獲得的輸出流接到另外一個DataOutputStream數據流上 

  • ServerSocket 對象與服務器端套接字

服務器必須創建一個 ServerSocket 對象,該對象經過將客戶端的套接字對象和服務器端的一個套接字對象鏈接起來,從而達到鏈接的目的。 

創建 ServerSocket 對象:

try{  ServerSocket  serverForClient =new ServerSocket(2010);
}
catch(IOException e){} 

使用方法 accept() 將客戶的套接字和服務器端的套接字鏈接起來:

try{  Socket sc= serverForClient .accept();
}
catch(IOException e){}  

所謂「接收」客戶的套接字鏈接就是 accept() 方法會返回一個和客戶端 Socket 對象相鏈接的 Socket 對象。

  • 使用多線程技術

爲了防止堵塞線程,服務器端收到一個客戶的套接字後,就應該啓動一個專門爲該客戶服務的線程。

  • UDP數據報

基於 UDP 的通訊和基於 TCP 的通訊不一樣,基於 UDP 的信息傳遞更快,但不提供可靠性保證。

基於 UDP 通訊的基本模式是:

1.將數據打包,稱爲數據包(比如將信件裝入信封同樣),而後將數據包發往目的地。

2.接受別人發來的數據包(比如接收信封同樣),而後查看數據包中的內容。

  • 廣播數據報

廣播數據報涉及到地址和端口。

廣播數據報是一種較新的技術,要廣播或接收廣播的主機都必須加入到同一個 D 類地址。

  • Java 遠程調用

1. 遠程對象

駐留在(遠程)服務器上的對象是客戶要請求的對象,稱做遠程對象。

2. 代理與存根(Stub)

代理的特色是它與遠程對象實現了相同的接口。

存根(Stub):一種特殊的字節碼,並讓這個存根產生的對象爲做爲遠程對象的代理。

3. Remote接口

RMI爲了標識一個對象是遠程對象,便可以被客戶請求的對象,要求遠程對象必須實現java.rmi包中的Remote接口,也就是說只有實現該接口的類的實例才被RMI認爲是一個遠

程對象。

代碼託管

代碼提交的過程:

代碼量統計

上週考試錯題總結

相關文章
相關標籤/搜索