日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

201521123007《Java程序设计》第13周学习总结

發布時間:2024/1/17 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123007《Java程序设计》第13周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 本周學習總結

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


2. 書面作業

1. 網絡基礎

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

IP地址: 163.177.151.110 IP所在位置:廣東省廣州市北京百度網訊科技有限公司聯通節點IP地址: 210.34.128.152 IP所在位置:福建省廈門市集美大學網絡中心

從IP所在位置來看cec.jmu.edu.cn[210.34.128.152]服務器離我們更近,所以數據包往返事件更短。

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

Telnet是遠程連接服務,它工作于在tcp/ip協議的應用層。為了區分這些服務器,每個服務器均分配一個標準端口值,其中telnet的標準端口值為23

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

以上是執行telnet cec.jmu.edu.cn 80語句后“CTRL+]”屏幕顯示的內容,直接執行telnet命令則什么都沒有顯示,不是cec.jmu.edu.cn的主頁內容。

上圖是使用GET /index HTTP/1.0命令屏幕顯示的內容,是cec.jmu.edu.cn的主頁內容。

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

從上圖中可以看到QQ使用的本地端口分別與遠程IP交互的有:

本地端口遠程IP通信協議
49489183.3.253.61TCP
49490183.3.253.68TCP
58219125.78.252.155TCP

IP分布地查詢結果:

IP地址物理地址
14.18.245.239廣東省廣州市, 電信
180.163.255.159上海市, 電信
180.163.251.158上海市, 電信
140.206.78.9上海市, 聯通
183.3.253.61廣東省廣州市, 電信
125.78.252.155福建省莆田市
180.163.255.159上海市, 電信

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

IP,協議,域名,端口號。

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進一步觀察返回結果。沒有任何返回結果,為什么?怎么操作

因為沒有發送get請求獲取html文檔
改進版:

2.4 啟動網絡調試助手,將其設置為TCP Server,并啟動,如下圖所示

嘗試使用Client.java連接該TCP Server,使用該服務器向Client發送信息。(截圖)

2.5 回答:現在的Client.java只能接收信息,能否改造Client.java使其可以與服務器進行交互(服務器可以發送信息給Client,Client也可發送信息給服務器),寫出大概思路即可。

3. ServerSocket與TCP服務器

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

關鍵代碼:

運行截圖:

3.2 多線程MenuServer(截圖證明你這個是多線程服務器,使用telnet連接)。

下圖是用cmd操作臺和網絡調試助手同時開啟不同線程的運行結果:

4. UDP服務器

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

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

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

編寫網路程序時應當選擇網絡上的數據流,過濾流DataInputStream和DataOutputStream,分別實現了接口DataInput 和DataOutput。接口DataInput 中定義的主要包括從流中讀取基本類型的數據、讀取一行數據、或者讀取指定長度的字節數,接口DataOutput中定義的方法主要是向流中寫入基本類型的數據或者寫入一定長度的字節數組。DataInputStream可以從所連接的輸入流中讀取與機器無關的基本類型數據,用以實現一種獨立于具體平臺的輸入方式;DataOutputStream可以向所連接的輸出流寫入基本類型的數據。用于實現網絡編程最合適不過。

6. 代碼閱讀

閱讀ServerAndThread目錄中的源代碼

6.1 運行該程序(截圖)。簡述這個程序的主要功能。

這個程序實現了多個客戶端同時連接服務端的數據傳送,即通信。

6.2 畫出源代碼的結構圖(各個類的依賴關系)。并簡要說明各個類的功能。


ClientChart:設置客戶端界面
ClientReadThread:客戶端讀取線程
ClientListener:客戶端的監聽器

SeverActionListener:服務端的監聽器
ServerReadThread:服務端讀取線程
ServerChart:設置服務端界面

MainThread:啟動服務端;監聽到客戶端連接后,加入客戶端的列表中;啟動服務端讀取線程。

6.3 簡述這個程序有什么不足之處及改進方法.

這個程序運行時,服務器端不能單獨相應單個客戶端,且不同客戶端之間可以互看通信,然后客戶端無法區分自己還是對方發的消息。


3. 碼云

碼云代碼提交記錄

在碼云的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然后搜索并截圖

轉載于:https://www.cnblogs.com/ty1213/p/6870008.html

總結

以上是生活随笔為你收集整理的201521123007《Java程序设计》第13周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。