udpserver简要说明

udpserver简要说明

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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信