201521123022 《Java程序设计》 第十三周学习总结
1. 本周學習總結(jié)
2. 書面作業(yè)
Q1. 網(wǎng)絡(luò)基礎(chǔ)
Q1.1 比較ping www.baidu.com與ping cec.jmu.edu.cn,分析返回結(jié)果有何不同?為什么會有這樣的不同?
前者IP所在地址:
后者IP所在地址:
由以上截圖可知,距離越遠,返回信息的耗時越長。
Q1.2 telnet bbs.newsmth.net,上面這條命令連接的是遠程主機的什么端口號?
端口號為23。
Q1.3 telnet cec.jmu.edu.cn 80,嘗試回答:你從屏幕看到一些什么內(nèi)容?返回的內(nèi)容是不是cec.jmu.edu.cn的主頁內(nèi)容?嘗試使用GET /index HTTP/1.0命令,會返回什么?詳見實驗任務(wù)書題目1。
第一問:回車后清屏,不是cec.jmu.edu.cn的主頁內(nèi)容,如下:
第二問:使用GET /index HTTP/1.0命令后,返回如下:
Q1.4 啟動ConnectionWatcher, 然后啟動若干個可以聯(lián)網(wǎng)的程序(如QQ, telnet,瀏覽器等),查看本機上有什么程序聯(lián)網(wǎng),使用了什么端口?QQ占用了什么端口和那些遠程IP進行交互,這些IP分布地在那里?使用了什么協(xié)議進行通信?
如迅雷:
Q1.5 編寫網(wǎng)絡(luò)程序必不可少的幾個信息是什么?
IP,協(xié)議,域名,端口號。
Q2. 編寫TCP客戶端程序
Q2.1 參照SocketTest.java編寫一個簡單的連接遠程服務(wù)器小程序Client.java,可以接收并顯示服務(wù)器發(fā)送的信息。啟動時需要首先在控制臺指定遠程主機IP與端口號。(截圖,出現(xiàn)自己學號)
Q2.2 將程序中的網(wǎng)址改成bbs.newsmth.net,端口號改為23,再次觀察返回結(jié)果?嘗試執(zhí)行telnet bbs.newsmth.net 23,對比返回結(jié)果。
可以看出大致相同。
Q2.3 將程序中的網(wǎng)址改成cec.jmu.edu.cn,端口號改為80進一步觀察返回結(jié)果。沒有任何返回結(jié)果,為什么?怎么操作。
因為此時狀態(tài)是CLOSE-WAIT,即被關(guān)閉。要用get請求獲取html文檔。
Q2.4 啟動網(wǎng)絡(luò)調(diào)試助手,將其設(shè)置為TCP Server,并啟動,如下圖所示。
嘗試使用Client.java連接該TCP Server,使用該服務(wù)器向Client發(fā)送信息。(截圖)
Q2.5 回答:現(xiàn)在的Client.java只能接收信息,能否改造Client.java使其可以與服務(wù)器進行交互(服務(wù)器可以發(fā)送信息給Client,Client也可發(fā)送信息給服務(wù)器),寫出大概思路即可。
Q3. ServerSocket與TCP服務(wù)器
Q3.1 簡易單線程MenuServer,題目3.1-3.4。(關(guān)鍵代碼及運行截圖,包含學號)可以使用網(wǎng)絡(luò)調(diào)試助手,將其設(shè)置為TCP Client(IP與端口填你的MenuServer的IP與端口),連接你的MenuServer。其中的文件搜索功能為選做。
Q3.2 多線程MenuServer(截圖證明你這個是多線程服務(wù)器,使用telnet連接)。
Q4. UDP服務(wù)器
Q4.1 改造3.1或3.2,將其改造成基于UDP的MenuServer。(運行界面代碼截圖,包含學號)。可以使用網(wǎng)絡(luò)調(diào)試助手,將其設(shè)置為UDP,要填本機IP與端口也要填遠程服務(wù)器的IP與端口。
Q5. 論述題:網(wǎng)絡(luò)程序與流
Q5.1 前面編寫的程序用到了大量的流的相關(guān)知識。簡述,編寫網(wǎng)絡(luò)程序時應(yīng)當選擇什么樣的流?Java網(wǎng)絡(luò)編程、流之間的關(guān)系。場景如:簡單的文字聊天、文件傳輸、應(yīng)用層協(xié)議服務(wù)器,如QQ、聊天室、網(wǎng)絡(luò)游戲。
如簡單的QQ聊天,就運用到輸入流InputStream、輸出流OutputStream、字符流PrintWriter。
Java網(wǎng)絡(luò)編程中,流是至關(guān)重要的一部分,幾乎所有的信息或文件傳輸都離不開流,數(shù)據(jù)的傳輸就依賴于流的作用。
Q6. 代碼閱讀
Q6.1 運行該程序(截圖)。簡述這個程序的主要功能。
實現(xiàn)了客戶端和服務(wù)端之間的交流通信。
Q6.2 畫出源代碼的結(jié)構(gòu)圖(各個類的依賴關(guān)系)。并簡要說明各個類的功能。
ClientChart:設(shè)置客戶端界面
ClientReadThread:客戶端讀取線程
ClientListener:客戶端監(jiān)聽器
ServerChart:設(shè)置服務(wù)端界面
SeverActionListener:服務(wù)端監(jiān)聽器
ServerReadThread:服務(wù)端讀取線程
MainThread:總啟動程序,實現(xiàn)服務(wù)端與客戶端的交互。
Q6.3 簡述這個程序有什么不足之處及改進方法.
存在多個客戶端時,服務(wù)端并不能知道每一條信息是從哪個客戶端發(fā)來的。可以設(shè)置客戶端不同名。
3. 碼云
轉(zhuǎn)載于:https://www.cnblogs.com/the-world/p/6885439.html
總結(jié)
以上是生活随笔為你收集整理的201521123022 《Java程序设计》 第十三周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装class-dump
- 下一篇: 【Java核心计算 基础知识(第9版)】