Ping程序设计代码及报告_第1页
Ping程序设计代码及报告_第2页
Ping程序设计代码及报告_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课 程计算机网络课程设计实验名称Ping程序的设计与实专业班级08级信管班姓 名学 号实验日期 2011年11月8日一.实验目的和要求课程设计目的PingPingICMPICMPICMPIPIP的封装之后传递。Ping命令,使学生掌握网络编程中对应的相关基础知识;Java网络包,使学生了解网络编程实现的细节。课程设计要求WindowsPing命令,具体内容及要求如下:WindowsPingPing命令的功能;IP地址,输出为连通性测试结果;Java网络包。二.实验环境操作系统Windowsxp处理器AMDAthlon(tm)x2240Processor运行环境JcreatorLE三.程序源代码(核心部分)Ping.java代码如下:.*;//java的网络包importjava.io.*;//java的io包publicclassPing{//定义类PingprivateinttimeOut;//定义私有整型变量timeoutprivateTimert;//Timert,但未分配内存publicPing(inttimeOut){//构造方法进行初始化this.timeOut=timeOut;//timeout()t=newTimer();//Timer创建一个新对象t}publicStringpingRang(Stringfrom,Stringto){ //ping地址的范围intipFrom=stringArToIntAr(from.split("\\."));//ip地址intip地址Stringoutput="";//output用来接收结果,fromto之间的内容返回结果

ipTo[3]=ipTo[3]+1;//ipTo数组里的地址的第四个元素加1while(!matchIP(ipFrom,ipTo)){//output+="Pinging:"+printIP(ipFrom);//output的output+="("+ping(printIP(ipFrom))+")ResponseTime:"+responseTime()+"\n";//再接收ping(printIP(ipFrom))的结果increaseIPrange(ipFrom,ipFrom.length-1);//increaseIPrange(),传入的参数为ipFrom起始地址、ipFrom数组长度-13}returnoutput;}privatevoidincreaseIPrange(int[]ipFrom,intcurBit){//逐渐增加IP地址的范围,curBit表示ip地址的最后一位ip地址的第三位

ipFrom[curBit]+=1;//ipFrom[3],即表示最后一位每次加1if(ipFrom[curBit]>255){//如果最后一位大于255ipFrom[curBit]=0;//则重新置为0if(curBit>0)//如果大于0increaseIPrange(ipFrom,curBit-1);//则再次调用本方法,将增加位置}}否在同一个网段中

privatebooleanmatchIP(int[]from,int[]to){//判断起始ip地址和终止ip地址是for(intc=0;c<from.length;c++){if(from[c]!=to[c]){returnfalse;}}returntrue;}privateStringprintIP(int[]ip)//将数组形式存放的ip地址转换成一般ip地址格式后打印出来{格式的字符串

StringipVal="";for(intc=0;c<ip.length;c++)//ipip地址{ipVal+=ip[c];//ipVal=ipVal+ip[c]if(c<ip.length-1)ipVal+=".";//输出IP地址的格式}returnipVal;}privateint[]stringArToIntAr(String[]ar)//实现字符串数组转换为整形数组输出{int[]result=newint[ar.length];for(inta=0;a<ar.length;a++){result[a]=Integer.parseInt(ar[a]);}returnresult;}publicStringping(Stringhost)//获取主机地址名{IP地址的IP地址

try{}

t.start();//通过t调用Timer类中的start()方法InetAddressaddress=InetAddress.getByName(host);//给出主机的名称,决定主StringretVal=pingAddress(address);t.end();returnretVal;}catch(UnknownHostExceptione)//UnknownHostException-如果找不到host{return"指定主机没有找到";}publicStringping(byte[]host)//ipInetAddress对象{InetAddress对象并取得返回结果

try{

t.start();InetAddressaddress=InetAddress.getByAddress(host);//给出原始的ip地址,返StringretVal=pingAddress(address);//pingAddress()ping功能,t.end();returnretVal;//返回结果}catch(UnknownHostExceptione)//指示主机IP地址无法确定而抛出的异常。{return"指定主机没有找到";}}privateStringpingAddress(InetAddressaddress){//实现ping命令功能,返回字符串格式的原始IP地址。try{//可能会抛出异常if(address.isReachable(timeOut))//调用isReachable()方法,如果测试可以达到address地址return"连接成功";//则返回连接成功elsereturn"连接超时";}catch(IOExceptione){//当发生某种I/O异常时,捕获此异常。return"不可达";}}publiclongresponseTime(){//响应时间的长度returnt.duration();//调用Timer类的duration()方法计算响应时间。}publicstaticvoidmain(Stringargs[]){//main主函数Pingpt=newPing(2000);//设置响应时间的最大时间System.out.println(pt.pingRang("00","05"));//需要测试的ip地址范围}}//cd.ch02;finalclassTimer//定义一个final类Timer{privatelongstart;privatelongend;publicvoidstart()//开始时间{reset();//调用reset()方法重置start和endSystem.gc();//然后运行垃圾回收,释放所占用内存start=System.currentTimeMillis();//记录开始时间为currentTimeMillis当前时间}publicvoidend()//结束时间{System.gc();end=System.cu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论