JavaShuo
欄目
標籤
201521123013 《Java程序設計》第13周學習總結
時間 2019-12-11
標籤
Java程序設計
13周
學習
總結
欄目
Java
简体版
原文
原文鏈接
1. 本週學習總結
2. 書面做業
Q1. 網絡基礎
1.1 比較ping www.baidu.com與ping cec.jmu.edu.cn,分析返回結果有何不一樣?爲何會有這樣的不一樣?
ping值不一樣(time列),cec.jmu.edu.cn的ping值比較小。
ping值:從本地電腦發一個數據包,傳輸到服務器,而後服務器返回本地電腦的總時間。由於cec.jmu.edu.cn的服務器離本機距離比較近,因此數據請求發送過去,再回來的時間就比較小,也就是ping值比較小。
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。
沒有內容;返回的不是cec.jmu.edu.cn主頁內容;使用GET /index HTTP/1.0命令,返回的是cec.jmu.edu.cn的主頁源代碼
1.4 啓動ConnectionWatcher, 而後啓動若干個能夠聯網的程序(如QQ, telnet,瀏覽器等),查看本機上有什麼程序聯網,使用了什麼端口?QQ佔用了什麼端口和那些遠程IP進行交互,這些IP分佈地在那裏?使用了什麼協議進行通訊?
酷狗、IE、QQ、360,使用了80端口、49329端口等等。使用了80端口跟遠程IP進行交互,使用了TCP協議。
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,對比返回結果。
由於eclipse編碼問題,有些字符沒法正常顯示。
2.3 將程序中的網址改爲cec.jmu.edu.cn,端口號改成80進一步觀察返回結果。沒有任何返回結果,爲何?怎麼操做
由於客戶端跟服務器(cec.jmu.edu.cn)是經過http協議進行交互的,因此須要使用GET命令請求消息。若是使用Socket的話,必須本身發送http請求,
out.println("GET / HTTP/1.0\n")
也可使用URL類,由於URL類能夠直接跟Web服務器進行交互(裏面封裝了使用http協議通訊的代碼),使用比較方便。
2.4 啓動網絡調試助手,將其設置爲TCP Server,並啓動,嘗試使用Client.java鏈接該TCP Server,使用該服務器向Client發送信息。(截圖)
2.5 回答:如今的Client.java只能接收信息,可否改造Client.java使其能夠與服務器進行交互(服務器能夠發送信息給Client,Client也可發送信息給服務器),寫出大概思路便可。
Q3. ServerSocket與TCP服務器
3.1 簡易單線程MenuServer,題目3.1-3.4。(關鍵代碼及運行截圖,包含學號)可使用網絡調試助手,將其設置爲TCP Client(IP與端口填你的MenuServer的IP與端口),鏈接你的MenuServer。其中的文件搜索功能爲選作。
3.2 多線程MenuServer(截圖證實你這個是多線程服務器,使用telnet鏈接)。
3.3 選作:圖形界面的MenuServer
Q4. UDP服務器
4.1 改造3.1或3.2,將其改形成基於UDP的MenuServer。(運行界面代碼截圖,包含學號)。可使用網絡調試助手,將其設置爲UDP,要填本機IP與端口也要填遠程服務器的IP與端口。
•參考:UDPServer.java
java
Q5. 論述題:網絡程序與流
5.1 前面編寫的程序用到了大量的流的相關知識。簡述,編寫網絡程序時應當選擇什麼樣的流?Java網絡編程、流之間的關係。場景如:簡單的文字聊天、文件傳輸、應用層協議服務器,如QQ、聊天室、網絡遊戲。
編寫網絡程序時選擇輸入輸出流的字節流,而後用字符流包裝。客戶端和服務器進行通訊,實際上就是對Socket對象中得到的流進行操做。對程序來說,輸出到屏幕,打印機,文件等都叫輸出,而從文件讀取,從網絡讀取,接收到都算輸入。
Q6. 代碼閱讀
閱讀ServerAndThread目錄中的源代碼
正則表達式
6.1 修改程序,在GUI界面中某個地方顯示本身的學號,而後運行該程序(截圖、出現學號)。簡述這個程序的主要功能。
功能:一臺服務與多臺客戶端之間的通訊。
6.2 畫出源代碼的結構圖(各個類的依賴關係)。並簡要說明各個類的功能。
ClientChart:客戶端界面,ClientReadThread:讀取客戶端消息,ClientListener:監聽器,監聽客戶端收到的消息。
服務端與客戶端相似。
6.3 簡述這個程序有什麼不足之處及改進方法.
不足:客戶端發消息時,服務端知道是哪一個線程發的消息,可是客戶端之間顯示只顯示「客戶端說:」,不能區分各客戶端。
選作:7. 網絡爬蟲
使用Socket、URL、正則表達式、流等編寫一個網絡爬蟲能夠將cec.jmu.edu.cn及其所包含連接上的全部網址的圖片都下載下來,抓取深到不超過5。
選作:8. 簡易搜索引擎(進階)
8.1 寫出設計思路便可。該搜索引擎包含幾部分?裏面核心的實現思路?若是能用框架圖、流程圖畫出架構
8.2 以計算機學院網站爲例,進行測試。好比,輸入ACM後搜索,能夠將包含ACM的的網頁抽取出來。(可做爲課程設計題目)
3. 碼雲
碼雲代碼提交記錄
相關文章
1.
201521123013 《Java程序設計》第14周學習總結
2.
201521123013 《Java程序設計》第6周學習總結
3.
201621123010《Java程序設計》第13周學習總結
4.
201621123050 《Java程序設計》第13周學習總結
5.
201621123031 《Java程序設計》第13周學習總結
6.
201521123014《Java程序設計》第13周學習總結
7.
201521123084 《Java程序設計》第13周學習總結
8.
201521123091 《Java程序設計》第13周學習總結
9.
201621123057 《Java程序設計》第13周學習總結
10.
201521123074 《Java程序設計》第13周學習總結
更多相關文章...
•
C# 程序結構
-
C#教程
•
第一個MyBatis程序
-
MyBatis教程
•
算法總結-歸併排序
•
使用Rxjava計算圓周率
相關標籤/搜索
第九周學習總結
Java程序設計
Java 程序設計
學習總結
學習、總結
程序設計
設計程序
Java程序設計教程
Docker學習總結
軟件設計
Java
網站建設指南
MyBatis教程
PHP教程
學習路線
設計模式
java
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
深度學習硬件架構簡述
2.
重溫矩陣(V) 主成份分析
3.
國慶佳節第四天,談談我月收入增加 4K 的故事
4.
一起學nRF51xx 23 - s130藍牙API介紹
5.
2018最爲緊缺的十大崗位,技術崗佔80%
6.
第一次hibernate
7.
SSM項目後期添加數據權限設計
8.
人機交互期末複習
9.
現在無法開始異步操作。異步操作只能在異步處理程序或模塊中開始,或在頁生存期中的特定事件過程中開始...
10.
微信小程序開發常用元素總結1-1
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
201521123013 《Java程序設計》第14周學習總結
2.
201521123013 《Java程序設計》第6周學習總結
3.
201621123010《Java程序設計》第13周學習總結
4.
201621123050 《Java程序設計》第13周學習總結
5.
201621123031 《Java程序設計》第13周學習總結
6.
201521123014《Java程序設計》第13周學習總結
7.
201521123084 《Java程序設計》第13周學習總結
8.
201521123091 《Java程序設計》第13周學習總結
9.
201621123057 《Java程序設計》第13周學習總結
10.
201521123074 《Java程序設計》第13周學習總結
>>更多相關文章<<