《计算机网络课程设计报告--1.PING程序设计与实现.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--1.PING程序设计与实现.docx(8页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告一、问题描述1 .所选题目:PING程序设计与实现PING命令用来检测网络的连通情况。PING使用了ICMP回送请求与回送回答报文,PING是应用层直接使用网络层ICMP的一个例子。2 .实验要求:本实验要求模拟实现WindoW下Ping命令,具体内容及要求如下:(1)运行WindoW环境下的Ping命令,了解Ping命令的功能;(2)设计并实现测试网站中一个主机联通性的程序,改程序输入该主机的域名或ip地址,输出为联通性测试结果;(3)系统利用JaVa语言实现,采用ec1ipse环境进行调试运行;(4)通过跟踪运行java网络包,使学生了解网络编程实现细节。二、概要设计
2、1 .类创建(1) Ping类:由输入的IP地址创建InetAddress对象,调用InetAddress类的isReachab1e()方法测试指定时间内该主机的可达性,来实现主要的连通过程。(2) Timer类:设置相应的响应时间,即得到Ping时的起始时间和结束时间来得到响应时间。(3) From类:触发窗体界面,根据界面提示进行ip地址的输入和操作以及通过点击按钮来触发Ping程序的运行。(4) ImagePane1类:主要完成在窗体上画背景图片的功能。InetAddress类中增加了一个IsReachab1e方法。可以使用这个方法来探测主机是否联通。这个方法有两种重载形式,它们的定义如
3、下:pub1icboo1eanisReachab1e(inttimeout)throwsIOExceptionpub1icboo1eanisReachab1e(Networkinterfacenetif,inttt1,inttimeout)throwsIOExcep2 .功能模块分析:(I)初始化模块:该模块用于初始化各个全局变量,为全局变量赋初值,初始化,加载库。(2)用户模块:该模块用于将界面显示出来,方便用户使用。(3)连通模块:该模块是本程序的核心模块,实现主机与主机之间是否可以Ping通。(4)测试模块:该模块可在DOS里输入外网的网址,测试是否可以Ping0系统流程图:三、详细设计
4、主要算法:pub1icStringpingRang(Stringfrom,Stringto)/确定Ping地址的范围intipFrom=StringArToIntAr(from,sp1it(,/.,z);/整形数组变量用来接收起始ip地址intipTo=StringArToIntAr(to.sp1it(,/.z,);/接收终止的ip地址Stringoutput=;定义字符串型变量OUtPUt用来接收结果ipTo3=ipTo3+1;/ipTo数组里的地址的第四个元素加1whi1e(ImatchIP(ipFrom,ipTo)/output+=Pinging:“printIP(ipFrom);/OU
5、tP1It变量用来接收PrintIP(ipFrom)的返回结果output=(+ping(printIP(ipFrom)+)ResponseTime:+responseTime()+n;再接收Ping(PrintIP(ipFrom)的结果IncreaseIPrange(ipFrom,ipFrom.1ength-1);/IncreaseIPrange(),传入的参数为ipFrom起始地址、ipFrom数组长度T,即为3)returnoutput;)privateStringpingddress(InetAddressaddress)/实现Ping命令功能,返回字符串格式的原始IP地址try/可能
6、会抛出异常if(address.isReachab1e(timeut)/调用isReachab1e()方法,如果测试可以达到address地址return连接成功;则返回连接成功e1sereturn连接超时;catch(IOExceptione)/当发生某种I/O异常时,捕获此异常。return不可达;)四、调试分析1jaVa基础不够扎实,调试过程中出现好多低级错误,特别是窗体那一部分比如:画背景图片的时候ImagePane1类的使用以及对JFrame的不是很了解,导致多次画图失败。解决方案是通过找找资料和咨询学java的朋友,才掌握了其运用方法2.java网络包中的类InteAddress,
7、该类拥有一个方法isReachab1e(Inttimeut)方法不熟悉,运用的时候不能得心应手,参考了网上资源才知道如何调用。实验结果:五、心得体会通过本周实习,我收获了很多。了解了Ping命令的功能。知道在网络中Ping是一个十分好用的TCP/IP工具,它主要的功能是用来检测网络的连通情况和分析网络速度。同时,也掌握了java网络编程的一些基础知识。但另一方面,也遇到了一些困难和挑战,对ping的实现原理不是特别理解,对java的操作技术也不熟练,需要在网上查找资料。因此,希望自己以后加强动手实践技能,而不是纯理论知识。小组分工:郑俊飞:负责编写和调试程序张永辉:负责搜集资料,写程序设计报告
8、杨巧蝶:负责设计流程图,完善课程设计报告六、用户手册系统环境:WindOWXP或以上系统软件环境:myEc1ipse软件系统的使用方法:1在ec1ipse运行环境下打开,并单击“运行”按钮,如图所示:1:-?J*U.jamtra1.frF1*4,)Timtjwa*ta*ort3v.vt.vw.cttonEm:。WUi1M9VC/.j*MX*Mf3J5*F*b11Ivivtet*tiegave1e,pub1icFrca111/rm*wJFrwCPingJF*);fx4M.etBMadaOr18.8OSOO)JXa*7PM1panenvIMqePana1(*iMgd.jp9*:pane1.e31i
9、e(900/SOOI1tuaJTxn1dS1nXpwvJTVxtF11d:fina1JTxtF1dMTpn*wJTtF11111-KMrJUJ3JUte1MMSp1abe1ErJ1AbHT大XJButtoacacIBuetonMWJ1ueconivdKK*I:“Snswcufon*rwJ3*8H*定T:pane1.st1ayout(nu11I:1D1pU*3e1.ecBound1630,50.4020JaaxXptbX.SetBounda16SO,804020):-1nip.EMaU(68,8,28.20sax】P.m;Bioe)vo.0ecBour191790BRQ90.M)t0ureBvt
10、to.adUcton1me*ernevActiontiMeMrovwxteM*11cvo1*act1onP*xfOCiwd(c(intv*itqO)maXp.QtTit(.to3ermg).trn():-EMMxIpTevx-eIp.0eTet1.co9crtng).trv(j/JC911onne.92ovSesgeO1ogM11,1nXpTextvaxXpTnt,n10xF222*,JOtIoaFane.DErAU1TOtTXCK)2Itmn1pxt.1S9t()04XfTxc.1engthOfFt10p1t0newP1tUKiOOOMStrtnot*t&bq.pno1aDgBiBZpTBt/msXpText);&MucMtT*(xc);I1SIOptIonPam.4WHMtfwD1o(nuU4wUKS.入】尸T课谡示*JOoaPn.DtnV1TomC:2 .运行程序出现Ping程序的界面,如图所示:3 .输入IP地址,出现运行结果。(1)当IP地址不完整时:EPIngIP-1(2)输入工P正确时: