




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学城市学院实验报告课程名称 计算机网络应用 实验项目名称 实验六 传输层网络编程 实验成绩 指导老师(签名) 日期 2014-05-27 一. 实验目的和要求1. 通过实现使用Java Socket进行通信的UDP客户端和服务器来获得关于使用Java Socket网络编程的经验;2. 通过实现使用Java Socket进行通信的TCP客户端和服务器来获得关于使用Java Socket网络编程的经验。二. 实验内容、原理及实验结果与分析1. UDP编程(参考电子讲义“网络编程参考资料-传输层.pdf”及教材“第2章 Socket编程”)1.1阅读 “网络编程参考资料-传输层.pdf”中 11.2部分,输入11.2.4部分“最简单的UDP程序”的源代码(UdpSend.java和UdpRecv.java)并在机器上编译运行通过(注意:要根据自己的机器IP地址修改源代码)。【程序源代码】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”进行测试。【程序源代码】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”。【程序源代码】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软件截获上面三个程序运行时客户机和服务器之间发送的数据包,并且根据截获的数据包内容进行分析。【实验结果与分析】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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空天大数据存储中心创新创业项目商业计划书
- 2025内蒙古呼伦贝尔陆港国际有限公司市场化选聘总经理、副总经理2人笔试备考及答案详解(各地真题)
- 教师招聘之《小学教师招聘》题型+答案(考点题)【预热题】附答案详解
- 教师招聘之《幼儿教师招聘》每日一练及答案详解(基础+提升)
- 教师招聘之《幼儿教师招聘》考前冲刺试卷及参考答案详解(精练)
- 花卉彩铅速写课件
- 教师招聘之《幼儿教师招聘》强化训练模考卷附参考答案详解【b卷】
- 教师招聘之《幼儿教师招聘》考试押题卷及一套参考答案详解
- 2025年本科应届测试题及答案
- 2025江苏镇江市丹阳市公安局机关后勤服务中心招聘1人考试参考题库附答案解析
- 健康与社会照护第三届全省职业技能大赛健康与社会照护项目技术文件
- 《外科无菌术》课件
- 《幼学琼林》全文原文及注释译文
- 23J916-1 住宅排气道(一)
- Unit 2 Travelling Around Reading and Thinking 课件高中英语人教版(2019)必修第一册
- (高级)航空油料特设维修员(三级)理论考试题库-上(单选题)
- 山东省岩棉板外墙外保温系统应用技术规程
- NB-T31053-2014风电机组低电压穿越建模及验证方法
- 《一着惊海天》学案
- (高清版)DZT 0261-2014 滑坡崩塌泥石流灾害调查规范(1:50000)
- 高压灭菌器安全培训
评论
0/150
提交评论