20175322 《Java程序設計》第十一周學習總結
阿新 • • 發佈:2019-05-12
發送 for inf 發送數據 失誤 mys min nec douban
20175322 《Java程序設計》第十一周學習總結
教材學習內容總結
- URL類
- 一個URL對象通常包含最基本的三部分信息:協議,地址,資源
- 構造方法:
public URL (String spec) throws MalformedURLException
- URL對象調用:
InputStream openStream()
- InetAdress類
- 獲取地址:
獲取Internet上主機的地址:可以使用InetAddress
類的靜態方法getByName(String s);
獲取本地機的地址:可以使用InetAddress
類的靜態方法getLocalHost()
獲得一個InetAddress
- 獲取地址:
- 套接字
- .IP地址標識Internet上的計算機,端口號標識正在計算機上運行的進程(程序)。端口號被規定為一個16位的0~65535之間的整數
- 當兩個程序需要通信時,它們可以通過使用Socket類建立套接字對象並連接在一起(端口號與IP地址的組合得出一個網絡套接字)
- (1)客戶端套接字
建立連接到服務器的套接字對象:try{ Socket mysocket=new Socket(“http://192.168.0.78”,1880); } catch(IOException e){}
獲得一個輸入流:getInputStream()
獲得一個輸出流:getOutputStream()
- (2) ServerSocket對象與服務器端套接字
建立ServerSocket對象:try{ ServerSocket serverForClient =new ServerSocket(2010); } catch(IOException e){}
使用方法accept()將客戶的套接字和服務器端的套接字連接起來,代碼如下所示:try{ Socket sc= serverForClient .accept(); } catch(IOException e){}
- (3)使用多線程技術
客戶使用Socket類不帶參數的構造方法Socket()創建一個套接字對象,該對象需調用public void connect(SocketAddress endpoint) throws IOException
InetSocketAddress
的構造方法是:InetSocketAddress(InetAddress addr, int port)
- UDP數據報
- (1)發送數據包
用DatagramPacket
的以下兩個構造方法創建待發送的數據包:DatagramPacket(byte data[],int length,InetAddtress address,int port)``DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
- (2)接受數據包
用DatagramSocket
的另一個構造方法DatagramSocket(int port)
創建一個對象,其中的參數必須和待接收的數據包的端口號相同
對象mail_in使用方法receive(DatagramPacket pack)
接受數據包 - 用 DatagramPack類的另外一個構造方法:
DatagramPack(byte data[],int length)
- (1)發送數據包
代碼調試中的問題和解決過程
- 問題1:運行第四個例子時顯示網絡連接中斷,程序運行失敗
- 問題1解決方案:認真翻看書本後發現運行程序時操作失誤,需要打開兩個端口分別運行客戶端和服務器端,重新調試後運行成功
代碼托管
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
...
20175322 《Java程序設計》第十一周學習總結