2023年7月15日发(作者:)
udpserver简要说明:
是Windows版,udp_是Linux版(是由于Tech网站上传附件,要求有特定的后缀,没办法啊)。
此程序为一个非常简单的udp服务器,它只是简单接收客户端发送的字符串,同时将其显示出来。可接收的字符串长度为59个字符(如果大于59个字符,它会正确显示前60个字符,同时在后面会有1个(Windows)或2个(Linux)不知道从那里冒出来的字符-____-)
使用说明:
此程序是一个命令行程序,运行时需要serv的IP地址及端口号两个参数。
Windows: [ip addr] [port num]
Linux: ./udp_ [ip addr] [port num]
例如在Windows系统下,点击开始菜单中的<运行>,输入cmd进入命令行界面下
图一 命令行界面
进入程序所在的文件夹,输入命令 [ip addr] [port num]如下图所示:
图二 程序运行
程序会显示运行成功的信息,并等待接收客户端发送过来的字符串数据。
然后即可利用各种发包工具或脚本语言构造各种udp数据包向服务器端发送数据。例如:可利用fragroute等工具构造重叠、分片报文,检查服务器端操作系统对这些报文的处理方式;可用来检查自己构造的带IP Options选项的数据报是否正确;可构造IP头部某些字段有错误的UDP数据包,检查操作系统的处理方式。下图为用nasl脚本语言构造的带RR选项的UDP包发送到服务器端,服务器端接收到了数据,并将其显示出来,这说明带有IP选项的数据报构造正确。
图三 接收数据
下图为利用Ethereal抓到的前面发送的数据报:
图四 带RR选项的UDP数据包
错误信息提示:
程序运行时,如输入参数不够或者太多时,会提示错误信息:
Argvs are not correct:
------------------------------------------------
First argv is udp server's ip address!
Second argv is udp server's port number!
------------------------------------------------ 如下图所示:
图五 输入参数不够或者太多
如果ip地址输入有问题(只接收点分十进制输入法)会提示错误信息:
Invalidate ip address input!
非法输入,例如:1a.a.a.a等。
图六 无效IP地址输入
如果端口号输入有问题(只接收十进制输入)会提示错误信息:
Invalidate port number input!
合法的输入为0、80、65535等,47ak(不是ak47,它违法了)等也为合法输入,其端口号为47。
图七 有效的端口输入
如果当前端口号已经被另外的程序占有,程序会提示错误信息:
Socket create good!
Bind failed!
bug修改: Windows版本中,当发送到服务器的字符串长度小于59时,接收到的字符串后面还会显示一大堆的“烫烫烫”(别见到这个就想到烫火锅了)。这是由于字符串以'0'这个字符为结束标志,程序接收到字符串后,未在其后面添加'0'字符,所以会显示程序能接收的最大字符数60个字符。现已对其做了修改,以后就不要再叫烫烫烫烫了。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689409195a243392.html
评论列表(0条)