![深圳大學(xué)java程序設(shè)計(jì)網(wǎng)絡(luò)編程應(yīng)用_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb1.gif)
![深圳大學(xué)java程序設(shè)計(jì)網(wǎng)絡(luò)編程應(yīng)用_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb2.gif)
![深圳大學(xué)java程序設(shè)計(jì)網(wǎng)絡(luò)編程應(yīng)用_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb3.gif)
![深圳大學(xué)java程序設(shè)計(jì)網(wǎng)絡(luò)編程應(yīng)用_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb4.gif)
![深圳大學(xué)java程序設(shè)計(jì)網(wǎng)絡(luò)編程應(yīng)用_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb/cc2d4009-e0a0-437b-85ef-a0fd4ced19bb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、深 圳 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告課程名稱:Java程序設(shè)計(jì) 實(shí)驗(yàn)項(xiàng)目名稱: 必實(shí)驗(yàn)6 網(wǎng)絡(luò)編程應(yīng)用 學(xué)院: 計(jì)算機(jī)與軟件學(xué)院 專業(yè): 指導(dǎo)教師:尹劍飛 報(bào)告人: 黃鋼 學(xué)號: 2016150170 班級: 計(jì)軟4班 實(shí)驗(yàn)時間: 2017年12月19日(周一)-2017年12月29日(周四) 實(shí)驗(yàn)報(bào)告提交時間: 2017年12月28日星期四 教務(wù)部制實(shí)驗(yàn)?zāi)康呐c要求: 實(shí)驗(yàn)?zāi)康模?掌握網(wǎng)絡(luò)通信協(xié)議及相關(guān)程序設(shè)計(jì)。實(shí)驗(yàn)要求: (1). 利用數(shù)據(jù)報(bào)通信方式試編寫一程序,該程序生成兩個客戶端,一個服務(wù)器端,兩個客戶端可以相互進(jìn)行簡短的文字交流。在報(bào)告中附上程序截圖、完整的運(yùn)行結(jié)果和簡要文字說明。(50分)
2、 (2). 編寫Java應(yīng)用程序,根據(jù)作業(yè)“單機(jī)版中英文單詞測試程序”的要求,將之改為網(wǎng)絡(luò)版??蛻舳撕头?wù)器端建立套接字連接后,服務(wù)器端向客戶端發(fā)送一個英文單詞和四個中文解釋(分別為A,B,C,D),假設(shè)只有一個解釋是正確的;客戶端將答案發(fā)送給服務(wù)器端;服務(wù)器端判斷客戶端的答案是否正確,并將已經(jīng)給出的題目的數(shù)量和答對的數(shù)量返回給客戶端,同時也把下一個英文單詞和四個中文解釋發(fā)送給客戶端;如此循環(huán)10次結(jié)束單詞測試。要求使用圖形界面。詞庫應(yīng)至少包含10個英文單詞和相應(yīng)的正確解釋和錯誤解釋。在報(bào)告中附上程序截圖、完整的運(yùn)行結(jié)果和簡要文字說明。(50分)說明:(1)本次實(shí)驗(yàn)課作業(yè)滿分為100分,占總成
3、績的比例(待定)。(2)本次實(shí)驗(yàn)課作業(yè)截至?xí)r間2017年12月29日(周四)23:59。(3)報(bào)告正文:請?jiān)谥付ㄎ恢锰顚懀敬螌?shí)驗(yàn)需要單獨(dú)提交源程序文件。(4)個人信息:WORD文件名中的“姓名”、“學(xué)號”,請改為你的姓名和學(xué)號;實(shí)驗(yàn)報(bào)告的首頁,請準(zhǔn)確填寫“學(xué)院”、“專業(yè)”、“報(bào)告人”、“學(xué)號”、“班級”、“實(shí)驗(yàn)報(bào)告提交時間”等信息。(5)提交方式:截至?xí)r間前,請?jiān)贛OOC平臺中提交;截至?xí)r間后一周內(nèi)提交(即延遲提交),請發(fā)郵件到y(tǒng)jf,并在郵件中注明課程名稱、作業(yè)名稱、姓名、學(xué)號等信息,我收到后會及時回復(fù)。(6)發(fā)現(xiàn)抄襲(包括復(fù)制&粘貼整句話、整張圖),該次作業(yè)記零分。(7)延遲提交
4、(即2017年12月29日23:59之后),不得分。(8)期末考試階段補(bǔ)交無效。(1). 利用數(shù)據(jù)報(bào)通信方式試編寫一程序,該程序生成兩個客戶端,一個服務(wù)器端,兩個客戶端可以相互進(jìn)行簡短的文字交流。在報(bào)告中附上程序截圖、完整的運(yùn)行結(jié)果和簡要文字說明。(50分)首先在服務(wù)器端建立兩個Node對象(用來標(biāo)識不同客戶端),即client1和client2的address和port。然后在主線程中啟動死循環(huán),在每次循環(huán)中開啟一個DatagramSocket對象來接收數(shù)據(jù)包,當(dāng)接收到數(shù)據(jù)包后,解析出它是由哪個客戶端發(fā)過來的,然后在最開始建立的兩個Node對象中找到該數(shù)據(jù)報(bào)應(yīng)該發(fā)往哪個客戶端(總共兩個Nod
5、e,除了本身,另一個就是發(fā)送地址)。找到發(fā)送地址后,將其與數(shù)據(jù)報(bào)作為參數(shù)創(chuàng)建Server對象(實(shí)現(xiàn)了Runnable接口),開啟Server的線程將數(shù)據(jù)報(bào)發(fā)送到另一個客服端,一次信息傳遞結(jié)束。接著可以進(jìn)行第二次信息傳送(無論從哪個客戶端發(fā)信息都可以)。注:由于在同一臺機(jī)器上的IP地址相同,光靠address來區(qū)分不同客戶端是不現(xiàn)實(shí)的,所以還需要加上端口號。因此,在同一臺機(jī)器上,client1和client2的代碼之間的區(qū)別就只是用來接收和發(fā)送數(shù)據(jù)包的DatagramSocket的端口號不同。若是服務(wù)端在不同機(jī)器上,則端口號也可以相同。此外,客服端在接收信息時,可能受到電腦防火墻的阻止,要注意一
6、下(在這里我找了好久的bug。)。服務(wù)端首先開啟MyService,執(zhí)行死循環(huán),在循環(huán)中為每一個發(fā)送數(shù)據(jù)報(bào)的客服端分配一個工作線程,來將信息發(fā)給相應(yīng)的客戶端。代碼如下:工作線程由類Server提供:從主線程中得到接收端的address和port,以及需要發(fā)送的信息,在run方法中,將信息發(fā)送給接收端。 客戶端界面如下:最下面的文本框用來輸入想要發(fā)送的信息,然后點(diǎn)擊Send,就會發(fā)送到另一個客戶端上,在Received Message下面是用來顯示聊天記錄的,自己發(fā)送的信息顯示在聊天記錄中會加上“I: ”來區(qū)分,對方發(fā)送的則會加上“him: ”。Clear按鈕是用來清空聊天記錄的主線程負(fù)責(zé)信息的
7、發(fā)送,另外開啟工作線程進(jìn)行數(shù)據(jù)的接收,即run方法,run方法中是一個死循環(huán),一直在等待接收信息,接收到信息后,在聊天記錄中顯示,并開始下一次循環(huán)。Run方法代碼如下運(yùn)行結(jié)果:(2). 編寫Java應(yīng)用程序,根據(jù)作業(yè)“單機(jī)版中英文單詞測試程序”的要求,將之改為網(wǎng)絡(luò)版??蛻舳撕头?wù)器端建立套接字連接后,服務(wù)器端向客戶端發(fā)送一個英文單詞和四個中文解釋(分別為A,B,C,D),假設(shè)只有一個解釋是正確的;客戶端將答案發(fā)送給服務(wù)器端;服務(wù)器端判斷客戶端的答案是否正確,并將已經(jīng)給出的題目的數(shù)量和答對的數(shù)量返回給客戶端,同時也把下一個英文單詞和四個中文解釋發(fā)送給客戶端;如此循環(huán)10次結(jié)束單詞測試。要求使用圖
8、形界面。詞庫應(yīng)至少包含10個英文單詞和相應(yīng)的正確解釋和錯誤解釋。在報(bào)告中附上程序截圖、完整的運(yùn)行結(jié)果和簡要文字說明。(50分) 網(wǎng)絡(luò)版的中英文單詞測試程序分為兩部分:服務(wù)端和客戶端。 服務(wù)端采取多線程處理套接字連接,可以為多個客戶端同時提供服務(wù)(但是在本實(shí)驗(yàn)中,如果想要啟動多個客戶端,則需要修改端口號)。服務(wù)端有兩個類:MyService和Handler。 MyService 主要用來為每一個客戶端分配一個工作線程(由Server提供)。服務(wù)器的主線程(MyService的main方法)負(fù)責(zé)接收客戶的連接,每收到一個連接請求,就創(chuàng)建一個線程負(fù)責(zé)與客戶通信。 Server 主要實(shí)現(xiàn)Runnabl
9、e接口,在run方法中,有一個執(zhí)行10次的循環(huán),每次循環(huán),負(fù)責(zé)向客戶端發(fā)送一個英文單詞和四個中文解釋(即5個String),然后接收客戶端發(fā)回來的選項(xiàng)(String),判斷結(jié)果是否正確,向客戶端發(fā)送正確數(shù)和做題總數(shù)。最后線程暫停3秒鐘。 客戶端界面如下: 界面實(shí)現(xiàn)與必實(shí)驗(yàn)5類似。整個界面中只有輸入選項(xiàng)的文本框?qū)崿F(xiàn)了監(jiān)聽接口,用于將答案發(fā)送至服務(wù)端進(jìn)行判斷。 客戶端的run方法是用來更新界面的,當(dāng)輸入上一題的答案后,主動更新到下一題,不需要手動操作。代碼如下: Myservice類的主要執(zhí)行代碼: 當(dāng)接收到客戶端請求時,開啟Handler的線程。run方法如下:getFour用來生成4個選項(xiàng),并返回正確選項(xiàng)是第幾個。Handler的run方法。詳細(xì)代碼見附件。運(yùn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手機(jī)器轉(zhuǎn)讓簡單合同范本年
- 施工工程運(yùn)輸合同范本
- 購買二手房買賣合同范本
- 2025cc直播平臺主播轉(zhuǎn)公會合同
- 二手商品房買賣合同
- 水泥銷售合同范本
- 石料買賣合同
- 2025續(xù)訂勞動合同通知書模板
- 2025建筑企業(yè)流動資金借款合同范本版
- 廣告發(fā)布投放合同
- 少兒口才培訓(xùn)主持課件
- 新《學(xué)前教育法》知識講座課件
- 公文寫作題庫(500道)
- 學(xué)校教學(xué)常規(guī)管理學(xué)習(xí)活動課件
- 餐飲業(yè)績效考核表(店長、前廳領(lǐng)班、吧臺、廚師長、后廚、服務(wù)員、收銀員、庫管、后勤)3
- 集成墻板購銷合同范本(2024版)
- 骨髓穿刺課件
- 2024中國保險發(fā)展報(bào)告-中南大風(fēng)險管理研究中心.燕道數(shù)科
- 元素的用途完整版本
- 建筑設(shè)計(jì)工程設(shè)計(jì)方案
- 供熱行業(yè)環(huán)境保護(hù)管理辦法
評論
0/150
提交評論