您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 《计算机网络实验》实验报告-软-...
浙江大学城市学院实验报告课程名称计算机网络实验实验项目名称实验六传输层网络编程学生姓名沈小明专业班级计算0904学号30901228实验成绩指导老师(签名)日期2011-12-13一.实验目的和要求1.通过实现使用JavaSocket进行通信的UDP客户端和服务器来获得关于使用JavaSocket网络编程的经验;2.通过实现使用JavaSocket进行通信的TCP客户端和服务器来获得关于使用JavaSocket网络编程的经验。二.实验内容、原理及实验结果与分析1.UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章Socket编程”)1.1阅读“网络编程参考资料-传输层.pdf”中11.2部分,输入11.2.4部分“最简单的UDP程序”的源代码(UdpSend.java和UdpRecv.java)并在机器上编译运行通过(注意:要根据自己的机器IP地址修改源代码)。【程序源代码】importjava.net.*;publicclassUdpSend{publicstaticvoidmain(String[]args)throwsException{DatagramSocketds=newDatagramSocket();Stringstr=helloword;DatagramPacketdp=newDatagramPacket(str.getBytes(),str.length(),InetAddress.getByName(10.66.25.172),3000);ds.send(dp);ds.close();}}importjava.net.*;publicclassUdpRecv{publicstaticvoidmain(String[]args)throwsException{DatagramSocketds=newDatagramSocket(3000);byte[]buf=newbyte[1024];DatagramPacketdp=newDatagramPacket(buf,1024);ds.receive(dp);StringstrRecv=newString(dp.getData(),0,dp.getLength())+from+dp.getAddress().getHostAddress()+:+dp.getPort();System.out.println(strRecv);ds.close();Thread.sleep(5000);}}【实验结果与分析】2.TCP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章Socket编程”)2.1阅读“网络编程参考资料-传输层.pdf”中11.3部分,输入11.3.3部分“简单的TCP服务器程序”的源代码(TcpServer.java)并在机器上编译运行,然后通过在命令行中输入“telnet自己的IP地址8001”进行测试。【程序源代码】importjava.net.*;importjava.io.*;publicclassTcpServer{publicstaticvoidmain(String[]args){try{ServerSocketss=newServerSocket(8001);Sockets=ss.accept();InputStreamips=s.getInputStream();OutputStreamops=s.getOutputStream();ops.write(welcometo!.getBytes());byte[]buf=newbyte[1024];intlen=ips.read(buf);System.out.println(newString(buf,0,len));ips.close();ops.close();s.close();ss.close();}catch(Exceptione){e.printStackTrace();}}}【实验结果与分析】2.2阅读“网络编程参考资料-传输层.pdf”中11.3部分,输入11.3.4部分“TCP服务器程序”(Tcp_Server.java)以及11.3.5客户端程序的源代码(Tcp_Client.java)并在机器上编译运行,客户端测试命令为“javaTcp_Client自己的IP地址8001”。【程序源代码】importjava.net.*;importjava.io.*;classServicerimplementsRunnable{Sockets;publicServicer(Sockets){this.s=s;}publicvoidrun(){try{InputStreamips=s.getInputStream();OutputStreamops=s.getOutputStream();BufferedReaderbr=newBufferedReader(newInputStreamReader(ips));DataOutputStreamdos=newDataOutputStream(ops);while(true){StringstrWord=br.readLine();if(strWord.equalsIgnoreCase(quit))break;StringstrEcho=(newStringBuffer(strWord).reverse()).toString();dos.writeBytes(strWord+----+strEcho+System.getProperty(line.separator));}br.close();dos.close();s.close();}catch(Exceptione){e.printStackTrace();}}}classTcpServer{publicstaticvoidmain(String[]args){try{ServerSocketss=newServerSocket(8001);while(true){Sockets=ss.accept();newThread(newServicer(s)).start();}}catch(Exceptione){e.printStackTrace();}}}importjava.net.*;importjava.io.*;publicclassTcpClient{publicstaticvoidmain(String[]args){try{if(args.length2){System.out.println(Usage:javaTcpClientServerIPServerPort);return;}Sockets=newSocket(InetAddress.getByName(args[0]),Integer.parseInt(args[1]));InputStreamips=s.getInputStream();OutputStreamops=s.getOutputStream();BufferedReaderbrKey=newBufferedReader(newInputStreamReader(System.in));DataOutputStreamdos=newDataOutputStream(ops);BufferedReaderbrNet=newBufferedReader(newInputStreamReader(ips));while(true){StringstrWord=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(Exceptione){e.printStackTrace();}}}【实验结果与分析】3.Ethereal抓包分析用Ethereal软件截获上面三个程序运行时客户机和服务器之间发送的数据包,并且根据截获的数据包内容进行分析。【实验结果与分析】SendReceiveTcp三.讨论、心得本次实验通过实现使用JavaSocket进行通信的UDP客户端和服务器和TCP客户端和服务器来获得关于使用JavaSocket网络编程的经验;
本文标题:《计算机网络实验》实验报告-软-...
链接地址:https://www.777doc.com/doc-7223737 .html