精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
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,来判断是不是有丢包。
1、初始化用户类型个数
2、100个用户数据包初始化
a)、用随机值来生成类型
b)、用户类型个数统计
3、用不同类型数据的发送量计算每个用户每次发送多少包,100个用户分为不同类型,把类型总的发送量分到每个类型总的用户上,比如100是类型总量,这个类型有10个用户,则处理某个用户包时,就发10个包,凑够100个包。
4、退出
我有几个疑问,请你认真看完我的问题!!!
1:判断包标志,这个包是对应某种业务信息的报的数量吗:包有3个标志,用户号和业务类型号、和包序号,因为包序号的累加变化是在业务类型范围内,这个在用户数据包说明里有举例。第一次不用判断时只需要保存下来,后面是先判断用户号再判断包序号。
2:在第一个包:用户ID和包序号进行初始化时干什么?难道不是应该在最开始进行初始化,这个包初始化和那个初始化一样吗?
客户端的初始化是静态的,在发送端发送时,包序号会自然累加,本业务类型完成,再从0开始。而服务器的初始化是判断用的,在实时变化,不把上次的值保存下来,怎么进行丢包判断。
3:同一用户对包这个,备份包序号是什么时候产生的?在客户端?是不是当时已经绑定的对应的。
4:其实同问题3一样,新用户和当前用户ID哪来的。程序刚开始运行不都是才开始吗?这个用户等于才来,他和谁对比。同问题3一样了,刚来的用户哪有备份包序号?
3和4问题,在2问题理解了就明白了。