課本知識總結
第十三章 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上的對象方法
遇到的問題及解決方法
在運行本章第一個代碼時出現
java
解決方法:將兩個程序分別打包在同一文件夾下,經過輸入javac -encoding gbk Example13_1.java
,而後成功編譯並運行。編程
代碼託管

上週錯題總結

解析:
服務器

解析:當main方法中沒有建立其餘的線程,main方法返回時,JVM就會結束Java應用程序;當main方法中建立了其餘線程,要等到全部線程都結束,JVM纔會結束Java應用程序網絡

解析:C項:先前的實體會成爲「垃圾」,而且不會被垃圾收集器收集。D項:當線程進入死亡狀態後,線程就還能夠調用isAlive()方法,而且返回值爲false。多線程