標籤:基於 知識 set 分布式 oca 學習總結 res ring 通訊端
課本知識總結第十三章 Java網路編程
- URL類
- URL類是java.net包中的一個重要的類
- 一個URL對象包含的三個基本資料:協議、地址和資源
- 協議:必須是URL對象所在的Java虛擬機器支援的協議,常用的有:Http、Ftp、File協議,由參數protocol指定
- 地址:必須是能串連的有效IP地址或網域名稱,由參數host指定
- 資源:可以是主機上的任何一個檔案,由參數file指定
- 構造方法
- public URL (String spec) throws MalformedURLException
- public URL(String protocol,String host,String file) throws MalformedURLException
- 調用InputStream openStream()方法返回一個輸入資料流
- InetAddress類
- Internet上主機表示地址的兩種方式
- 擷取地址
- 擷取Internet上主機地址:getByName(String s)
- 擷取本地機地址:getLocalHost()
- 通訊端
- 是基於TCP協議的網路通訊
- 用戶端通訊端
- 對象建立方法:使用Socket類
- Socket構造方法:Socket(String host,int port)
- ServerSocket對象與伺服器端通訊端
- 構造方法:ServerSocket(int port)
- 使用方法accept()將用戶端的通訊端和伺服器端的通訊端串連起來
try{ Socket sc = serverForClient.accept();}catch(IOException e) {}
- 通訊完畢後,通訊端使用close()方法關閉通訊端串連
- 多線程技術
- 伺服器端收到一個用戶端的通訊端時,就會啟動一個專門為該客戶服務的線程
- 通訊端通訊基本原則
- 伺服器應當啟動一個專門的線程,在該線程中和客戶的通訊端建立串連
- 由於通訊端的輸入資料流在讀取資訊時可能發生阻塞,用戶端和伺服器端都需要在一個單獨的線程中讀取資訊
- UPD資料報
DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
- 發送:使用構造方法DatagramSocket()建立一個對象
- 接收資料包
- 使用構造方法DatagramSocket(int port)建立一個對象
- 使用方法receive(DatagramPacket pack)接收資料包
- 廣播資料報
- A類地址:a<128,則b.c.d表示主機
- B類地址:128<=a<192,則a.b表示網路地址,c.d表示主機地址
- C類地址:a>=192,a.b.c表示網路地址,d表示主機地址
- D類地址:224.0.0.0~224.255.255.255是保留地址
- 要廣播或接收廣播的主機都必須加入到同一個D類地址
- RMI是一種分布式技術,使用RMI可以讓一個虛擬機器(JVM)上的應用程式請求調用位於網路上另一處JVM上的對象方法
遇到的問題及解決方案
在運行本章第一個代碼時出現
解決方案:將兩個程式分別打包在同一檔案夾下,通過輸入javac -encoding gbk Example13_1.java,然後成功編譯並運行。
代碼託管
上周錯題總結
-
解析:
-
解析:當main方法中沒有建立其他的線程,main方法返回時,JVM就會結束Java應用程式;當main方法中建立了其他線程,要等到所有線程都結束,JVM才會結束Java應用程式
-
解析:C項:先前的實體會成為“垃圾”,並且不會被垃圾收集器收集。D項:當線程進入死亡狀態後,線程就還可以調用isAlive()方法,並且傳回值為false。
20165330 2017-2018-2 《Java程式設計》第9周學習總結