1. 程式人生 > >201521123116 《java程序設計》第十三周學習總結

201521123116 《java程序設計》第十三周學習總結

簡述 watcher 網址 控制臺 對象 應用 new ews java程序

1. 本周學習總結

以你喜歡的方式(思維導圖、OneNote或其他)歸納總結多網絡相關內容。

技術分享

2. 書面作業

Q1. 網絡基礎

1.1 比較ping www.baidu.comping cec.jmu.edu.cn,分析返回結果有何不同?為什麽會有這樣的不同?

技術分享

  • 完成一次網絡交互的時間不同,ping www.baidu.com為:19ms完成一次網絡交互;ping cec.jmu.edu.cn為:小於等於1ms完成一次網絡交互。返還行程的時間不同,ping www.baidu.com為:最短19ms,最長19ms,平均19ms

1.2 telnet bbs.newsmth.net,上面這條命令連接的是遠程主機的什麽端口號?

技術分享

技術分享

.3 telnet cec.jmu.edu.cn 80,嘗試回答:你從屏幕看到一些什麽內容?返回的內容是不是cec.jmu.edu.cn的主頁內容?嘗試使用GET /index HTTP/1.0命令,會返回什麽?詳見實驗任務書題目1。

沒有內容;返回的不是cec.jmu.edu.cn主頁內容;使用GET /index HTTP/1.0命令,返回的是cec.jmu.edu.cn的主頁源代碼。

技術分享

1.4 啟動ConnectionWatcher, 然後啟動若幹個可以聯網的程序(如QQ, telnet,瀏覽器等),查看本機上有什麽程序聯網,使用了什麽端口?QQ占用了什麽端口和那些遠程IP進行交互,這些IP分布地在那裏?使用了什麽協議進行通信?

技術分享

1.5 編寫網絡程序必不可少的幾個信息是什麽?

  • 套接字(Socket)、輸入輸出流(incoming.getInputStream(),getOutputStream())、TCP、UDP協議。

Q2. 編寫TCP客戶端程序

2.1 參照SocketTest.java編寫一個簡單的連接遠程服務器小程序Client.java,可以接收並顯示服務器發送的信息。啟動時需要首先在控制臺指定遠程主機IP與端口號。(截圖,出現自己學號)

技術分享

2.2 將程序中的網址改成bbs.newsmth.net,端口號改為23,再次觀察返回結果?嘗試使用telnet bbs.newsmth.net 23。對比返回結果

技術分享

答:顯示內容是一樣的

2.3 將程序中的網址改成cec.jmu.edu.cn,端口號改為80進一步觀察返回結果。沒有任何返回結果,為什麽?

答:應該使用GET /index HTTP/1.0命令

3. ServerSocket與TCP服務器

3.1 簡易單線程MenuServer,題目3.1-3.4。(關鍵代碼及運行截圖,包含學號)可以使用網絡調試助手,將其設置為TCP Client(IP與端口填你的MenuServer的IP與端口),連接你的MenuServer。其中的文件搜索功能為選做?
3.2 多線程MenuServer。(截圖證明你這個是多線程服務器,使用telnet連接)

4. UDP服務器

4.1 改造3.1或3.2,將其改造成基於UDP的MenuServer。(運行界面代碼截圖,包含學號)。可以使用網絡調試助手,將其設置為UDP,要填本機IP與端口也要填遠程服務器的IP與端口。

Q5. 論述題:網絡程序與流

5.1 前面編寫的程序用到了大量的流的相關知識。簡述,編寫網絡程序時應當選擇什麽樣的流?Java網絡編程、流之間的關系。場景如:簡單的文字聊天、文件傳輸、應用層協議服務器,如QQ、聊天室、網絡遊戲。

編寫網絡程序時選擇輸入輸出流的字節流,然後用字符流包裝。客戶端和服務器進行通信,實際上就是對Socket對象中獲得的流進行操作。對程序來講,輸出到屏幕,打印機,文件等都叫輸出,而從文件讀取,從網絡讀取,接收到都算輸入。

3. 碼雲

碼雲代碼提交記錄

技術分享

201521123116 《java程序設計》第十三周學習總結