udp丢包测试软件,UDP丢包测试系统

UDP丢包测试系统

用户数据包说明

struct Comm_Client

{

int iccid;//用户

unsigned char ccstatus;//状态

unsigned char citype;//整数类型

char ctype[6];//文本类型

int iindex;//包

char cdata[1200];//模块数据

};

用户 在客户端初始化为0…99

状态、文本类型和模块数据初始化后就不会改变,不影响流程。

整数类型决定了业务类型,每种业务类型的流量不一样,则每种类型的包数不一样,包多了则占的带宽就多,包的个数决定了流量大小,假设100个包是100个量,1个包就是1个量,100个量肯定比1个量大。

包 在业务流量发送时,从0开始累加,100个包,则序 表示为:0,1,2….,99。服务器端在收到数据包时,通过当前包 和上个包 差值是否为1,来判断是不是有丢包。

客户端流程和说明

初始化数组内数据包和发送策略。

初始化SOCKET

发送循环

按策略发送

休眠1秒

关闭SOCKET

退出

初始化

数组内数据包和发送策略流程和说明

1、初始化用户类型个数

2、100个用户数据包初始化

a)、用随机值来生成类型

b)、用户类型个数统计

3、用不同类型数据的发送量计算每个用户每次发送多少包,100个用户分为不同类型,把类型总的发送量分到每个类型总的用户上,比如100是类型总量,这个类型有10个用户,则处理某个用户包时,就发10个包,凑够100个包。

4、退出

按策略发送

获取开始时间

100个用户数据包发送循环

业务类型包发送循环:用户循环发送内嵌套业务类型数据发送,保证整体的发送量满足要求

用循环变量来初始化包序 ,保证序 自然累加

调用SendTo发送,发送时指定服务器IP

获取结束时间,并输出用时

退出

服务器端流程

主函数流程

定义变量,初始化2个端口值7000和7001

打开线程1,传入端口1

打开线程2,传入端口2

循环让主线程不退出

线程函数流程

分配socket

初始化地址和端口

绑定bind

进入接收函数

接收函数流程

初始化变量,分配30M内存

把socket加入到fd_set变量,准备进行socket状态判断

接收循环看流程图。

我有几个疑问,请你认真看完我的问题!!!

1:判断包标志,这个包是对应某种业务信息的 的数量吗:包有3个标志,用户 和业务类型 、和包序 ,因为包序 的累加变化是在业务类型范围内,这个在用户数据包说明里有举例。第一次不用判断时只需要保存下来,后面是先判断用户 再判断包序 。

2:在第一个包:用户ID和包序 进行初始化时干什么道不是应该在最开始进行初始化,这个包初始化和那个初始化一样吗/p>

客户端的初始化是静态的,在发送端发送时,包序 会自然累加,本业务类型完成,再从0开始。而服务器的初始化是判断用的,在实时变化,不把上次的值保存下来,怎么进行丢包判断。

3:同一用户对包这个,备份包序 是什么时候产生的客户端不是当时已经绑定的对应的。

4:其实同问题3一样,新用户和当前用户ID哪来的。程序刚开始运行不都是才开始吗个用户等于才来,他和谁对比。同问题3一样了,刚来的用户哪有备份包序 /p>

3和4问题,在2问题理解了就明白了。

文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览22100 人正在系统学习中 相关资源:暗组苹果找回助手(找回丢失Iphone手机)v1.0中文绿色版-其它代码类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月25日
下一篇 2021年6月25日

相关推荐