1. 本週學習總結
以你喜歡的方式(思惟導圖、OneNote或其餘)概括總結多網絡相關內容。
1.兩類傳輸協議:TCP;UDP
TCP/IP協議的名稱中只有TCP這個協議名,可是在TCP/IP的傳輸層同時存在TCP和UDP兩個協議。java
2.經過TCP協議傳輸,獲得的是一個順序的無差錯的數據流。發送方和接收方的成對的兩個socket之間必須創建鏈接,以便在TCP協議的基礎上進行通訊,當一個socket(一般都是server socket)等待創建鏈接時,另外一個socket能夠要求進行鏈接,一旦這兩個socket鏈接起來,它們就能夠進行雙向數據傳輸,雙方均可以進行發送或接收操做。編程
3.UDP是User Datagram Protocol的簡稱,是一種無鏈接的協議,每一個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網絡上以任何可能的路徑傳往目的地,所以可否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的。小程序
4.URL(Uniform Resource Locator)是一致資源定位器的簡稱,它表示Internet上某一資源的地址。經過URL咱們能夠訪問Internet上的各類網絡資源,好比最多見的WWW,FTP站點。瀏覽器經過解析給定的URL能夠在網絡上查找相應的文件或其餘資源。瀏覽器
2. 書面做業
1. 網絡基礎
1.1 比較ping www.baidu.com與ping cec.jmu.edu.cn,分析返回結果有何不一樣?爲何會有這樣的不一樣?


速度不一樣,由於網絡的距離的區別,學校網站快於百度服務器
1.2 telnet bbs.newsmth.net,上面這條命令鏈接的是遠程主機的什麼端口號?
23網絡
1.3 telnet cec.jmu.edu.cn 80,嘗試回答:你從屏幕看到一些什麼內容?返回的內容是否是cec.jmu.edu.cn的主頁內容?嘗試使用GET /index HTTP/1.0命令,會返回什麼?詳見實驗任務書題目1。

無返回內容多線程
使用GET /index HTTP/1.0命令
socket
返回404錯誤。tcp
1.4 啓動ConnectionWatcher, 而後啓動若干個能夠聯網的程序(如QQ, telnet,瀏覽器等),查看本機上有什麼程序聯網,使用了什麼端口?QQ佔用了什麼端口和那些遠程IP進行交互,這些IP分佈地在那裏?使用了什麼協議進行通訊?

QQ未佔用端口,使用了TCP/UDP協議通訊
學習
1.5 編寫網絡程序必不可少的幾個信息是什麼?
IP、端口、協議、域名。
參考:實驗任務書-題目1
2. 編寫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進一步觀察返回結果。沒有任何返回結果,爲何?怎麼操做

2.4 啓動網絡調試助手,將其設置爲TCP Server,並啓動,以下圖所示
3. ServerSocket與TCP服務器



能夠控制服務器的啓動中止、查看客戶端連接的基本信息(IP、端口、連接時間)
參考:實驗任務書-題目3
參考:EchoServer.java,ThreadedEchoServer.java (多線程服務器)
4. UDP服務器


參考:UDPServer.java
5. 論述題:網絡程序與流
5.1 前面編寫的程序用到了大量的流的相關知識。簡述,編寫網絡程序時應當選擇什麼樣的流?Java網絡編程、流之間的關係。場景如:簡單的文字聊天、文件傳輸、應用層協議服務器,如QQ、聊天室、網絡遊戲。
InputStream輸入流和OutputStream輸出流經過字節流
聊天、傳輸等數據傳送過程經過字符流
6. 代碼閱讀
閱讀ServerAndThread目錄中的源代碼
6.1 修改程序,在GUI界面中某個地方顯示本身的學號,而後運行該程序(截圖、出現學號)。簡述這個程序的主要功能。
6.2 畫出源代碼的結構圖(各個類的依賴關係)。並簡要說明各個類的功能。
6.3 簡述這個程序有什麼不足之處及改進方法.
3. 碼雲
碼雲代碼提交記錄

在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖