计算机网络课程设计20134.doc

上传人:scccc 文档编号:11584412 上传时间:2021-08-25 格式:DOC 页数:16 大小:138KB
返回 下载 相关 举报
计算机网络课程设计20134.doc_第1页
第1页 / 共16页
计算机网络课程设计20134.doc_第2页
第2页 / 共16页
计算机网络课程设计20134.doc_第3页
第3页 / 共16页
计算机网络课程设计20134.doc_第4页
第4页 / 共16页
计算机网络课程设计20134.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机网络课程设计20134.doc》由会员分享,可在线阅读,更多相关《计算机网络课程设计20134.doc(16页珍藏版)》请在三一文库上搜索。

1、信息科学与工程学院课程设计任书 题 目: Ping程序设计实现 专 业: 软件外包 课 程: 计算机网络 指导教师: 职称: 讲师 完成时间: 2013 年 4 月-2013年 5 月枣庄学院信息科学与工程学院制2013 年 5 月 30 日课程设计任务书及成绩评定课程设计的任务和具体要求 要求:初步掌握基于TCP/IP 网络编程的基本实现方法和思路,同时进一步熟悉计算机网络课程中基于IP 层协议的工作机制。本实验要求模拟实现Windows下Ping命令,具体内容及要求如下:1.运行Windows环境下的Ping命令,了解Ping命令的功能;2.设计并实现测试网络中一个主机连通性的程序,该程序

2、输入为主机的域名或IP地 址,输出为连通性测试结果;3.跟踪运行Java网络包 4.通过模拟实现Ping命令,使学生掌握网络编程中对应的相关基础知识 任务分配: :负责收集程序的相关资料,对PING 程序的设计与实现的课程设 计进行需求分析及整体设计:负责对PING 程序的设计与实现的详细设计以及java代码的编写调试,进行上级调试实现PING操作:负责关于记录调试的结果,撰写课程设计报告书。指导教师签字: 、 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等:1. 操作系统windows 72. 运行环境 Dos 系统3. 处理器AMD课程设计进度计划起至日期工作

3、内容备注2013.4.10-2013.4.202013.4.21-2013.4.30 2013.5.1-2013.5.202013.5.21-2012.5.262013.5.27-2013.5.30任务选择、任务计划安排、资料收集任务需求分析、整体设计任务详细设计、上机调试任务课程设计报告书的撰写老师检查系统、上交课程设计报告书参考文献、资料索引序号文献、资料名称编著者出版单位参考文献1 谢希仁编.计算机网络(第5 版).北京:电子工业出版社,2009.2 潘爱民.计算机网络(第4 版).北京:清华大学出版社,20053 任泰明.TCP/IP网络编程.北京:人民邮电出版社,2009年.4 罗莉

4、琴,詹祖桥.Windows网络编程.北京:人民邮电出版社,2011年.15 目 录1. 课程设计的目的 32 系统总体设计 33详细设计 54 .系统测试及存在问题 115. 设计体会 106. 参考文献 11一实验目的 本次实验旨在通过网络相关程序的编写,使我们更清晰的了解TCP/IP协议机制。巩固相关的理论知识,为以后编写程序打下良好的基础初步掌握基于TCP/IP 网络编程的基本实现方法和思路,同时进一步熟悉计算机网络课程中基于IP 层协议的工作机制。2 系统总体设计 Ping的返回信息有Request imed Out、Destination Net Unreachable和Bad IP

5、 address还有Source quench received。Request Timed Out这个信息表示对方主机可以到达到TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。Destination Net Unreachable这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下destination host unreachable和time out的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现time out,如果路由表中连到达目标的路由都没有,那就会出

6、现destination host unreachable。Bad IP address 这个信息表示你可能没有连接到DNS服务器所以无法解析这个IP地址,也可能IP地址不存在。Source quench received信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。3 详细设计程序源代码的实现Ping.java代码实现如下: import .*;/java的网络包 import java.io.*;/java的io包 public class Ping /定义类Ping private int timeOut;/定义私有整型变量timeout private Time

7、r t;/声明一个Timer类的对象t,但未分配内存 public Ping(int timeOut)/ 构造方法,进行初始化 This.timeOut=timeOut;/内部调用timeout() t=new Timer();/给Timer创建一个新对象t public String pingRang(String from,String to) /确定ping地址的范围 int ipFrom=stringArToIntAr(from.split(.);/整形数组变量用来接收起始ip地址 int ipTo=stringArToIntAr(to.split(.);/接收终止的ip地址 Stri

8、ng output=; /定义字符串型变量output用来接收结果,介于from和to之间的内容ipTo3=ipTo3+1;/ipTo数组里的地址的第四个元素加1while(!matchIP(ipFrom,ipTo)/output+=Pinging:+printIP(ipFrom);/output变量用来接收printIP(ipFrom)的返回结果output+=(+ping(printIP(ipFrom)+)ResponseTime:+responseTime()+n;/再接收ping(printIP(ipFrom)的结果 increaseIPrange(ipFrom,ipFrom.leng

9、th-1);/调用increaseIPrange(),传入的参数为ipFrom起始地址、ipFrom数组长度-1即为3return output;privatevoidincreaseIPrange(intipFrom,intcurBit)/逐渐增加IP地址的址围,curBit表示ip地址的最后一位 /ipFromcurBit+=1;/ipFrom3,即表示最后一位每次加1if(curBit0)/如果大于0increaseIPrange(ipFrom,curBit-1);/则再次调用本方法,将增加位置改为ip地址的第三位private boolean matchIP(intfrom,intto

10、)/判断起始ip地址和终ip地址是否在同一个网段中for(int c=0;cfrom.length;c+)if(fromc!=toc)return false;return true; private String printIP(int ip);/将数组形式存放的ip地址转换成一般ip地址格式后打印出 String ipVal=; for(int c=0;cip.length;c+)/循环输出ip数组中的每个元素,同时加符号.,得到ip地址格式的字符串ipVal+=ipc;/ipVal=ipVal+ipc if(cip.length-1) ipVal+=.;/输出IP地址的格式 return

11、 ipVal; private int stringArToIntAr(String ar);/实现字符串数组转换为整形数组输出intresult=new int ar.length; for(int a=0;a255) /如果最后一位大于255 ipFromcurBit=0; /则重新置为0if(curBit0) /如果大于0 increaseIPrange(ipFrom,curBit-1);/则再次调用本方法,将增加位置改为ip地址的第三位private boolean matchIP(int from,int to)/判断起始ip地址和终止ip地址是否在同一个网段中if(fromc!=t

12、oc) return false; return true; private String printIP(int ip)/将数组形式存放的ip地址转换成一般ip地址格式后打印出String ipVal=; for(int c=0;cip.length;c+)/循环输出ip数组中的每个元素,同时加符号.,得到ip地址格式的字符串ipVal+=ipc;/ipVal=ipVal+ipc if(cip.length-1)ipVal+=.;/输出IP地址的格式return ipVal;private int stringArToIntAr(String ar)/实现字符串数组转换为整形数组输出 int

13、result=new int ar.length;for(int a=0;aar.length;a+)resulta=Integer.parseInt(ara); return result; public String ping (String host)/获取主机地址名try t.start();/通过t调用Timer类中的start()方法InetAddress address=InetAddress.getByName(host);/给出主机的名称,决定主机的IP地址String retVal=pingAddress(address); t.end(); return retVal;

14、catch(UnknownHostException e)/UnknownHostExcepti如果找不到host的IP地址return指定主机没有找到; public String ping (byte host)/将给定的ip地址创建成InetAddress对象 try t.start();InetAddress address=InetAddress.getByAddress(host);/给出原始的ip地址,返回一个InetAddress对象String retVal=pingAddress(address);/调用pingAddress()方法,实现ping功能,并取得返回结果t.e

15、nd(); return retVal;/返回结果catch(UnknownHostException e)/指示主机IP 地址无法确定而抛出的异常。end=System.currentTimeMillis(); public long duration()/计算响应时间的方法return(end-start); public void reset()/重置开始和结束时间 start=0; end=0; 在windows 7 环境下运行,查看结果 四系统测试及存在的问题 测试总结:由上面测试的结果可以看出来自222.194.136.1的回复有32个字节的数 据,时间为6ms,生命周期为27ms

16、。发送了4个数据包,接收了4个数据包,丢包率为0%。说明本网络与外网的联通性比较好,网速比较给力这时候说明本网络与222.194.139.1的网络连通性不好5 设计体会开始接到网络编程的课程设计一点都不懂,再加上要用java语言编程,更不知从何下手。由于考虑都时间关系,我们小组3人再分成两组分别进行,分别开始对两个设计的工作。我主要负责的就是ping程序的设计。在图书馆查找了资料,在网上搜索了许多相关资料后,才开始对各个函数的理解。参考了同学的程序,在对每个函数与其参数进行了理解,最后才基本上了解了整个过程,并且可以在此基础上添加一些功能等。得出以下结论:使用Ping检查连通性有五个步骤:1.

17、 使用ipconfig /all观察本地网络设置是否正确;2. Ping 222.194.136.1检查网关的连通性3. 222.194.136.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好;3. Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误;4. Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)5. Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常 六.参考文献 谢希仁编.计算机网络(第5 版).北京:电子工业出版社,2009. 潘爱民.计算机网络(第4 版).北京:清华大学出版社,2005 任泰明.TCP/IP网络编程.北京:人民邮电出版社,2009年.罗莉琴,詹祖桥.Windows网络编程.北京:人民邮电出版社,2011年.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1