實驗六 傳輸層網絡編程.doc_第1頁
實驗六 傳輸層網絡編程.doc_第2頁
實驗六 傳輸層網絡編程.doc_第3頁
實驗六 傳輸層網絡編程.doc_第4頁
實驗六 傳輸層網絡編程.doc_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

浙江大學城市學院實驗報告課程名稱 計算機網絡應用 實驗項目名稱 實驗六 傳輸層網絡編程 實驗成績 指導老師(簽名) 日期 2014-05-27 一. 實驗目的和要求1. 通過實現(xiàn)使用Java Socket進行通信的UDP客戶端和服務器來獲得關于使用Java Socket網絡編程的經驗;2. 通過實現(xiàn)使用Java Socket進行通信的TCP客戶端和服務器來獲得關于使用Java Socket網絡編程的經驗。二. 實驗內容、原理及實驗結果與分析1. UDP編程(參考電子講義“網絡編程參考資料-傳輸層.pdf”及教材“第2章 Socket編程”)1.1閱讀 “網絡編程參考資料-傳輸層.pdf”中 11.2部分,輸入11.2.4部分“最簡單的UDP程序”的源代碼(UdpSend.java和UdpRecv.java)并在機器上編譯運行通過(注意:要根據自己的機器IP地址修改源代碼)?!境绦蛟创a】UdpSend.javaimport .*;public class UdpSend public static void main(String args) throws Exception DatagramSocket ds=new DatagramSocket(); String str=Hello Chengyining!; DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(), InetAddress.getByName(5),3000); ds.send(dp); ds.close(); UdpRecv.javaimport .*;public class UdpRecv public static void main(String args) throws Exception DatagramSocket ds=new DatagramSocket(3000); byte buf=new byte1024; DatagramPacket dp=new DatagramPacket(buf,1024); ds.receive(dp); String strRecv=new String(dp.getData(),0,dp.getLength()+ from +dp.getAddress().getHostAddress()+:+dp.getPort(); System.out.println(strRecv); ds.close(); 【實驗結果與分析】2. TCP編程(參考電子講義“網絡編程參考資料-傳輸層.pdf”及教材“第2章 Socket編程”)2.1閱讀 “網絡編程參考資料-傳輸層.pdf”中 11.3 部分,輸入11.3.3部分“簡單的TCP服務器程序”的源代碼(TcpServer.java)并在機器上編譯運行,然后通過在命令行中輸入“telnet 自己的IP地址 8001”進行測試?!境绦蛟创a】TcpServer.javaimport .*;import java.io.*;public class TcpServer public static void main(String args) try ServerSocket ss=new ServerSocket(8001); Socket s=ss.accept(); InputStream ips=s.getInputStream(); OutputStream ops=s.getOutputStream(); ops.write(Hello World!.getBytes(); BufferedReader br=new BufferedReader(new InputStreamReader(ips); System.out.println(br.readLine(); byte buf=new byte1024; int len = ips.read(buf); System.out.println(new String(buf,0,len); ips.close(); ops.close(); s.close(); ss.close(); catch(Exception e)e.printStackTrace(); 【實驗結果與分析】2.2閱讀 “網絡編程參考資料-傳輸層.pdf”中 11.3 部分,輸入11.3.4 部分“TCP服務器程序”(Tcp_Server.java)以及11.3.5客戶端程序的源代碼(Tcp_Client.java)并在機器上編譯運行,客戶端測試命令為“java Tcp_Client 自己的IP地址 8001”?!境绦蛟创a】Tcp_Server.javaimport .*;import java.io.*;class Servicer implements Runnable Socket s; public Servicer(Socket s) this.s=s; public void run() try InputStream ips=s.getInputStream(); OutputStream ops=s.getOutputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(ips); DataOutputStream dos=new DataOutputStream(ops); while(true) String strWord = br.readLine(); System.out.println(strWord+:+strWord.length(); if(strWord.equalsIgnoreCase(quit) break; String strEcho=(new StringBuffer(strWord).reverse().toString(); /dos.writeBytes(strWord+-+strEcho+rn); dos.writeBytes(strWord+-+strEcho+System.getProperty(line.separator); br.close(); dos.close(); s.close(); catch(Exception e)e.printStackTrace(); class Tcp_Server public static void main(String args) try ServerSocket ss=new ServerSocket(8001); while(true) Socket s=ss.accept(); new Thread(new Servicer(s).start(); /ss.close(); catch(Exception e)e.printStackTrace(); Tcp_Client.javaimport .*;import java.io.*;public class Tcp_Client public static void main(String args) try /Socket s=new Socket(InetAddress.getByName(1),8001); if (args.length2) System.out.println(Usage:java Tcp_Client ServerIP ServerPort); return; Socket s=new Socket(InetAddress.getByName(args0),Integer.parseInt(args1); InputStream ips=s.getInputStream(); OutputStream ops=s.getOutputStream(); BufferedReader brKey=new BufferedReader(new InputStreamReader(System.in); DataOutputStream dos=new DataOutputStream(ops); BufferedReader brNet=new BufferedReader(new InputStreamReader(ips); while(true) String strWord=brKey.readLine(); dos.writeBytes(strWord+System.getProperty(line.separator); if (strWord.equalsIgnoreCase(quit) break; else System.out.println(brNet.readLine(); dos.close(); brNet.close(); brKey.close(); s.close(); catch(Exception e)e.printStackTrace(); 【實驗結果與分析】3. Ethereal抓包分析用Ethereal軟件截獲上面三個程序運行時客戶機和服務器之間發(fā)送的數據包,并且根據截獲的數據包內容進行分析?!緦嶒灲Y果與分析】host 7 and udpUdpSend數據包下面表格的值取自UdpSend數據包:長度16位16位16位16位字段Source portDestination portLengthChecksum值49183000260x37cahost 7 and tcp port 8001TcpServer數據包結構下面的表格的值取自圖中選中的數據包:前32位長度16位16位字段Source port Destination port值80014221第2、3個32位:長度32位3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論