欢迎来到天天文库
浏览记录
ID:12976782
大小:178.50 KB
页数:15页
时间:2018-07-20
《用winsock设计ping应用程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、华东交通大学课程设计报告华东交通大学课程设计(论文)任务书软件学院专业软件工程班级2007-1一、课程设计(论文)题目用winsock设计Ping应用程序二、课程设计(论文)工作:自2009年12月28日起至2010年1月2日止。三、课程设计(论文)的内容要求:1、分析winsock编程技术2、分析ping程序的功能及其相关网络协议3、给出ping程序流程图和设计方案4、选择开发环境,编译源程序5、给出软件测试文档6、设计小结7、参考文献15华东交通大学课程设计报告学生签名:2010年1月2日课程设计(论文)评阅意见项目等 级优秀良好中等及格不及格课程设计态度评价出勤情况评价任务
2、难度评价工作量饱满评价设计中创新性评价论文书写规范化评价综合应用能力评价综合评定等级评阅人谢昕职称教授2010年1月5日15华东交通大学课程设计报告目 录一、需求分析4二、概要设计5三、详细设计6四、设计和调试分析9五、用户手册10六、测试结果和小结10七、参考文献1515华东交通大学课程设计报告一、需求分析该程序应该完成的功能:通过该程序能够检测出与目的主机的连接情况。性能需求:在完成主要的功能的基础上,增加一些参数。参数:-t:校验与指定计算机的连接,直到用户中断。-a:将地址解析为计算机名。-ncount:发送由count指定数量的ECHO报文,默认值为4。-llength:发
3、送包含由length指定数据长度的ECHO报文。默认值为32字节。出错处理需求:能够检测出输入中的错误。并且通过提示用户方式避免出现程序中断。15华东交通大学课程设计报告二、概要设计该PING程序的原理:通过向计算机发送ICMPEcho请求报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。首先,程序会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址"192.168.1.2"一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址"192.168.1.
4、2"作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,这是数据链路层协议构建数据链路层的传输单元----帧所必需的),一并交给数据链路层。程序中应用的WINSOCK函数:WSAStartup函数:初始化SocketWSAStartup(MAKEWORD(2,0),//Socket版本号&wsaData//指向WSADATA数据结构的指针);Socket函数:创建原始套接字socket(AF_INET,//协议族(AF_INET:TCP_IP)SOCK_RAW,//套接
5、字类型(原始套接字)IPPROTO_ICMP//协议类型(ICMP协议));WSACleanup函数:终止Socket,释放资源地址分析函数:inet_addr函数、gethostbyaddr函数、gethostbyname函数、inet_ntoa函数Closesocket函数:关闭套接字Sendto和recvfrom函数:向TCP连接的另一端发送数据和从TCP连接的另一端接收数据Setsockopt函数:设置socket属性15华东交通大学课程设计报告三、详细设计程序流程图:正确信息错误开始字符串判断输入字符串创建网络连接并且设置发送数据接受返回数据包验证数据包和输出结果结束输出错
6、误信息15华东交通大学课程设计报告代码分析:对字符串的判断为:函数spn_str:从开始begin位置一直找到下个空格位置,并且返回最后停留的字符的坐标位置。其中有两个形式参数:char*pstr(字符串指针)、intbegin(指向开始的字符位置)。函数cpy_str:复制从形式参数begin位置开始到形式参数end位置。其中有4个形式参数(char*string1,char*string2,intbegin,intend)函数decide_str:其有7个形式参数。char*pstr:指向输入的字符串int&begin:目的主机字符串在输入字符串中的位置int&length:目的
7、主机字符串的长度int&attachsize:发送的字节长度int&n:发送包的个数bool&abool:是否有-a的功能bool&tbool:是否有-t的功能如果有-a的功能用下面代码实现:if(!pparams->abool)//判断-aEditPrintf(hwndOut,TEXT("Pinging%swith%dbytesofdata:"),ICMP_DEST_IP,pparams->attachsize);else{hostinfo=ge
此文档下载收益归作者所有