




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./1.UDP概念UDP是UserDatagramProtocol的簡(jiǎn)稱,中文名是用戶數(shù)據(jù)包協(xié)議,是OSI參考模型中一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù),IETFRFC768是UDP的正式規(guī)。2.文件傳輸流程2.1在此使用UDP協(xié)議傳送文件的程序中,先在服務(wù)器端設(shè)定監(jiān)聽(tīng)端口號(hào)〔3666,在接收客戶端發(fā)來(lái)的請(qǐng)求之前一直處于阻塞狀態(tài);在客戶端則從本地讀取二進(jìn)制文件并封裝成數(shù)據(jù)報(bào),并發(fā)送到相應(yīng)的服務(wù)器端〔ip:127.0.0.1,端口:3666;當(dāng)服務(wù)器端接收到客戶端發(fā)來(lái)的請(qǐng)求后,則對(duì)數(shù)據(jù)進(jìn)行處理,即讀取并保存數(shù)據(jù),然后返回操作后的信息到客戶端;當(dāng)客戶端接收到服務(wù)器端的信息后,則輸出服務(wù)器端返回的信息,到此時(shí)就完成了客戶端的請(qǐng)求和服務(wù)器端的應(yīng)答;最后關(guān)閉DatagramSocket。3.程序流程圖Receive<>Receive<>接收到來(lái)自客戶端的數(shù)據(jù)writeFile<>Socket<>readFile<>sendTo<>Receive<>sendTo<>客戶端服務(wù)器端YN顯示返回的信息Close<>Socket<>數(shù)據(jù)應(yīng)答發(fā)送文件4.程序部分源碼4.1服務(wù)器端源碼publicclassServerextendsThread{ DatagramSocketds=null; DatagramPacketdp=null; Filefile=null;Overridepublicvoidrun<>{//TODOAuto-generatedmethodstubtry{//設(shè)置端口為3666ds=newDatagramSocket<3666>;while<true>{byte[]buf=newbyte[1024*64];//用于接收長(zhǎng)度為1024的數(shù)據(jù)包dp=newDatagramPacket<buf,buf.length>;//從此套接字接收數(shù)據(jù)報(bào)包,此方法在接收到數(shù)據(jù)之前處于阻塞狀態(tài)ds.receive<dp>;//保存接收文件,文件名取系統(tǒng)當(dāng)前時(shí)間longtemp=System.currentTimeMillis<>;this.saveFile<dp,temp+"">;//為使反饋過(guò)程效果明顯,線程休眠2秒后發(fā)送回復(fù)信息 Thread.sleep<2000>; Stringmessage="serverhasreceivedit."; DatagramPacketpacket=newDatagramPacket<message.getBytes<>, message.length<>,InetAddress.getLocalHost<>,6666>;//發(fā)送回復(fù)數(shù)據(jù)包ds.send<packet>; } }catch<Exceptione>{ e.printStackTrace<>; } }/** *保存接收到的文件 * *paramdp *paramfilePath保存文件所在的路徑 *throwsIOException */privatevoidsaveFile<DatagramPacketdp,StringfilePath>throwsIOException{ FileOutputStreamfileOutputStream=newFileOutputStream<newFile< filePath>>; fileOutputStream.write<dp.getData<>,0,dp.getData<>.length>; fileOutputStream.close<>; }}4.2客戶端源碼publicclassClient{privateDatagramSocketds=null;privateDatagramPacketdp=null;/** *傳輸文件 *paramfilePath文件所在路徑 */publicvoidTransmitFile<StringfilePath>{try{//從本地讀取文件byte[]data=this.readFile<filePath>;ds=newDatagramSocket<6666>;//封裝數(shù)據(jù)報(bào)dp=newDatagramPacket<data,<int>data.length, InetAddress.getLocalHost<>,3666>;//開(kāi)始傳輸文件ds.send<dp>;//接收從服務(wù)器回復(fù)的信息byte[]buf=newbyte[1024];dp=newDatagramPacket<buf,buf.length>;ds.receive<dp>;byte[]server=dp.getData<>; System.out.println<"客戶端-->收到服務(wù)器返回的信息:\n"+newString<server,0,dp.getLength<>>.trim<>>; }catch<Exceptione>{ e.printStackTrace<>; }finally{ds.close<>; } }/** *讀取文件 * *paramfilePath *文件路徑 *return *throwsIOException */publicbyte[]readFile<StringfilePath>throwsIOException{ Filefile=newFile<filePath>;if<!file.exists<>>{returnnull; } InputStreaminputStream=newFileInputStream<file>; ByteArrayOutputStreamout=newByteArrayOutputStream<1024>;byte[]data=newbyte[1024];intlen=0;while<<len=inputStream.read<data>>!=-1>{ out.write<dat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣西南寧市考試招聘中小學(xué)教師筆試有關(guān)事項(xiàng)考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(名校卷)
- 2025年福建省兒童醫(yī)院招聘6人模擬試卷及答案詳解(奪冠系列)
- 2025年4月北京門頭溝區(qū)龍泉鎮(zhèn)城市協(xié)管員招聘1人考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解(黃金題型)
- 重軌加工工勞動(dòng)防護(hù)用品使用考核試卷及答案
- 2025廣東陽(yáng)江市陽(yáng)春市統(tǒng)計(jì)局招聘編外人員1人模擬試卷及答案詳解(必刷)
- 鎖具裝配工數(shù)字化平臺(tái)運(yùn)維考核試卷及答案
- 公司船體放樣號(hào)料工職業(yè)健康技術(shù)規(guī)程
- 2025哈藥集團(tuán)春季校園招聘模擬試卷及1套完整答案詳解
- 硝酸銨中和工設(shè)備安全技術(shù)規(guī)程
- 2025年北京師范大學(xué)淮南實(shí)驗(yàn)學(xué)校教師招聘9人模擬試卷及參考答案詳解
- 手機(jī)成癮課件教學(xué)課件
- 【部編】人教版六年級(jí)上冊(cè)道德與法治全冊(cè)知識(shí)點(diǎn)總結(jié)梳理
- HG/T 3809-2023 工業(yè)溴化鈉 (正式版)
- MOOC 研究生學(xué)術(shù)規(guī)范與學(xué)術(shù)誠(chéng)信-南京大學(xué) 中國(guó)大學(xué)慕課答案
- 2024-2029全球及中國(guó)湖泊管理行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資發(fā)展研究報(bào)告
- 土石方平場(chǎng)施工方案
- 2023年臨汾市翼城縣社區(qū)工作者招聘考試真題
- 《高級(jí)會(huì)計(jì)學(xué)(第9版)》習(xí)題答案
- 左傳人物關(guān)系表還原版
- 快手磁力聚星星選達(dá)人認(rèn)證考試試卷答案
- 臨高縣和舍鎮(zhèn)先光村民委員會(huì)訴海南省國(guó)營(yíng)西流農(nóng)場(chǎng)土地糾紛一案
評(píng)論
0/150
提交評(píng)論