《《计算机网络实验》实验报告软件实验.doc》由会员分享,可在线阅读,更多相关《《计算机网络实验》实验报告软件实验.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浙江大学城市学院实验报告课程名称 计算机网络实验 实验项目名称 实验六 传输层网络编程 学生姓名 袁伟坚 专业班级 计算1003 学号 实验成绩 指导老师(签名 ) 日期 一. 实验目的和要求1. 通过实现使用Java Socket进行通信的UDP客户端和服务器来获得关于使用Java Socket网络编程的经验;2. 通过实现使用Java Socket进行通信的TCP客户端和服务器来获得关于使用Java Socket网络编程的经验。二. 实验内容、原理及实验结果与分析1. UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章 Socket编程”)1.1阅读 “网络编程参考
2、资料-传输层.pdf”中 11.2部分,输入11.2.4部分“最简单的UDP程序”的源代码(UdpSend.java和UdpRecv.java)并在机器上编译运行通过(注意:要根据自己的机器IP地址修改源代码)。【程序源代码】发送:import .*;public class Hf public static void main(String args)throws ExceptionDatagramSocket ds=new DatagramSocket();String str=Hello world;DatagramPacket dp=new DatagramPacket(str.get
3、Bytes(),str.length(),InetAddress.getByName(10.66.21.139),3000);ds.send(dp);ds.close();接收:import .*;public class Hf1 /* * param args */public static void main(String args)throws Exception / TODO 自动生成方法存根DatagramSocket ds=new DatagramSocket(3000);byte buf=new byte1024;DatagramPacket dp=new DatagramPac
4、ket(buf,1024);ds.receive(dp); String strRecv=new String (dp.getData(),0,dp.getLength()+from+ dp.getAddress().getHostAddress()+:+dp.getPort(); System.out.print(strRecv); ds.close(); 【实验结果与分析】TCP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章 Socket编程”)2.1阅读 “网络编程参考资料-传输层.pdf”中 11.3 部分,输入11.3.3部分“简单的TCP服务器程序”的源代码(
5、TcpServer.java)并在机器上编译运行,然后通过在命令行中输入“telnet 自己的IP地址 8001”进行测试。【程序源代码】import .*;import java.io.*;public class h1 public static void main(String args) / TODO 自动生成方法存根tryServerSocket ss=new ServerSocket(8001);Socket s=ss.accept();InputStream ips=s.getInputStream();OutputStream ops=s.getOutputStream();o
6、ps.write(welcome to www. 洪锋.getBytes();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客
7、户端程序的源代码(Tcp_Client.java)并在机器上编译运行,客户端测试命令为“java Tcp_Client 自己的IP地址 8001”。【程序源代码】TCP:import .*;import java.io.*;class Servicer implements h2Socket s;public Servicer(Socket s)this.s = s;public void run()tryInputStream ips = s.getInputStream();OutputStream ops = s.getOutputStream();BufferedReader br =
8、 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.wr
9、iteBytes(strWord + - + strEcho + rn);dos.writeBytes(strWord + - + strEcho + System.getProperty(line.separator);br.close();dos.close();s.close();catch(Exception e)e.printStackTrace();Public class h1public static void main(String args)tryServerSocket ss=new ServerSocket(8001);while(true)Socket s=ss.ac
10、cept();new Thread(new Servicer(s).start();/ss.close();catch(Exception e)e.printStackTrace();客户端:import .*;import java.io.*;public class h3 public static void main(String args) try/Socket s=new Socket(InetAddress.getByName(10.66.21.138),8001);if(args.length2)System.out.println(Usage:java TcpClient Se
11、rverIP 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);Buffe
12、redReader brNet = new BufferedReader(new InputStreamReader(ips);while(true)String strWord = brKey.readLine();dos.writeBytes(strWord + System.getProperty(line.separator);if(strWord.equalsIgnoreCase(quit)break;elseSystem.out.println(brNet.readLine();dos.close();brNet.close();brKey.close();s.close();catch(Exception e)e.printStackTrace();【实验结果与分析】Ethereal抓包分析用Ethereal软件截获上面三个程序运行时客户机和服务器之间发送的数据包,并且根据截获的数据包内容进行分析。【实验结果与分析】三. 讨论、心得记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。