計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)2_第1頁
計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)2_第2頁
計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)2_第3頁
計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)2_第4頁
計(jì)算機(jī)網(wǎng)絡(luò)原理實(shí)驗(yàn)2_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第1頁共2頁實(shí)驗(yàn)報(bào)告學(xué)院(系)名稱:計(jì)算機(jī)科學(xué)與工程學(xué)院姓名學(xué)號專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)二:基于TCP/UDP的Socket編程課程名稱計(jì)算機(jī)網(wǎng)絡(luò)原理課程代碼實(shí)驗(yàn)時(shí)間2022年3月29日、4月1日實(shí)驗(yàn)地點(diǎn)考核標(biāo)準(zhǔn)實(shí)驗(yàn)準(zhǔn)備(實(shí)驗(yàn)?zāi)康?工具熟悉情況)10分實(shí)驗(yàn)過程(實(shí)驗(yàn)方案可行性及步驟完整性)40分實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)內(nèi)容豐富度與格式清晰度)30分實(shí)驗(yàn)結(jié)果(結(jié)論正確性以及分析合理性)20分成績教師簽字:考核內(nèi)容評價(jià)實(shí)驗(yàn)?zāi)康氖欠衩鞔_,實(shí)驗(yàn)工具是否清晰了解以及熟悉情況○可行,完整○可行,不完整○不可行,不完整○豐富,清晰○較豐富,較清晰○豐富,不清晰○不豐富,不清晰○結(jié)論正確,分析合理○結(jié)論正確,分析不充分○結(jié)論不正確,分析不合理實(shí)驗(yàn)?zāi)康氖煜ず驼莆誷ocket編程的基本理論和方法。掌握基于TCP和UDP的工作原理以及Socket編程的一般方法,能夠編寫簡單的網(wǎng)絡(luò)應(yīng)用程序?qū)嶒?yàn)工具Eclipse、Java語言、SocketTool調(diào)試工具3.實(shí)驗(yàn)方案請?jiān)谝韵骂}目中選擇一個(gè),按照要求完成實(shí)驗(yàn),并完成實(shí)驗(yàn)報(bào)告。編程可以使用任何高級語言,建議使用Java、Python或C++。利用Java、Python或C++語言,基于TCP或UDP編寫一個(gè)簡單的Client/Server網(wǎng)絡(luò)應(yīng)用程序。要求實(shí)現(xiàn)客戶向服務(wù)器傳輸一個(gè)文件,服務(wù)器將收到的文件進(jìn)行保存。進(jìn)一步改進(jìn)a)的程序,使之更實(shí)用。比如傳輸文件夾等。(有難度,可以根據(jù)自身情況選做)4.實(shí)驗(yàn)步驟:1、編寫TCPClient.java,用SocketTool創(chuàng)建sever端,調(diào)試客戶端是否可以正常傳遞給服務(wù)端所讀文件內(nèi)容。2、編寫TCPSever.java3、主要思想是客戶端通過FileInputStream讀取文件夾內(nèi)容,通過DataOutputStream傳遞給服務(wù)端,服務(wù)端通過BufferedReader讀取客戶端傳遞過來的文件內(nèi)容,通過PrintWriter寫入指定的文件里面。5.實(shí)驗(yàn)結(jié)論與分析:(結(jié)合理論知識總結(jié)實(shí)驗(yàn)結(jié)果,并對其正確性、創(chuàng)新性進(jìn)行分析以及本次實(shí)驗(yàn)心得體會)實(shí)驗(yàn)代碼:TCPClient.javapackageputer;importjava.io.*;import.*;publicclassTCPClient{ publicstaticvoidmain(String[]args)throwsException{ FileInputStreamin=newFileInputStream("C:\\Users\\dell\\Desktop\\計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)\\client\\a.txt"); SocketclientSocket=newSocket("",6789); DataOutputStreamoutToServer=newDataOutputStream(clientSocket.getOutputStream()); byte[]buff=newbyte[1024]; intlen; while((len=in.read(buff))!=-1){ outToServer.write(buff,0,len); } System.out.println("文件傳輸完成"); in.close(); clientSocket.close(); }}TCPServer.javapackageputer;importjava.io.*;import.*;publicclassTCPServer{ publicstaticvoidmain(String[]args)throwsException{ Stringsentence; StringClientSentence; Stringfile="C:\\\\Users\\\\dell\\\\Desktop\\\\計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)\\\\server\\\\b.txt"; PrintWriterpw=newPrintWriter(file); ServerSocketwelcomeSocket=newServerSocket(6789); SocketconnectionSocket=welcomeSocket.accept(); BufferedReaderinfromClient=newBufferedReader(newInputStreamReader(connectionSocket.getInputStream())); Stringss; while((ss=infromClient.readLine())!=null){ pw.println(ss); } pw.close(); connectionSocket.close(); }}結(jié)果截圖:實(shí)驗(yàn)心得體會:基本了解和掌握如何利用Java、Python或C++語言,基于TCP或UDP編寫一個(gè)簡單的Client/Server網(wǎng)絡(luò)應(yīng)用程序。要求實(shí)現(xiàn)客戶向服務(wù)器傳輸一個(gè)文件,服務(wù)器將收到的文件進(jìn)行保存。過程中遇到了兩個(gè)問題,第一個(gè)問題:一開始傳遞中文出現(xiàn)亂碼,英文和數(shù)字沒有問題,用字節(jié)流傳遞可以避免這個(gè)問題,另外要保證Java項(xiàng)目和文件的encoding一致。第二個(gè)問題,服務(wù)端接收過來的文件內(nèi)容無法換行保存在文件里。用PrintWriter代替FileOutputS

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論