最近在写TCP通信,在处理数据流的时候走了很多弯路,总结一下经验。
现在能想到的更好的模式:“()”内为注释,分行便于阅读,各条数据间无间隔。
int(总字节长度,包括所有的int和string)
int(字符串1的长度)
string(字符串1)
int(字符串2的长度)
string(字符串2)
……
int(字符串n的长度)
string(字符串n)
感想:
1、也可以在总字节长度之后加上两个int作为参数,一个作为主命令参数(命令种类),另一个作为命令附属参数。
2、int之后也可以不跟字符串,可以规定正数和0为字符串,负数代表之后的数据类型,比如-1代表int,-2代表double。
3、这样比固定内存大小的struct或class灵活许多,比用特殊字符串作间隔更加完善和可靠。
现在能想到的更好的模式:“()”内为注释,分行便于阅读,各条数据间无间隔。
int(总字节长度,包括所有的int和string)
int(字符串1的长度)
string(字符串1)
int(字符串2的长度)
string(字符串2)
……
int(字符串n的长度)
string(字符串n)
感想:
1、也可以在总字节长度之后加上两个int作为参数,一个作为主命令参数(命令种类),另一个作为命令附属参数。
2、int之后也可以不跟字符串,可以规定正数和0为字符串,负数代表之后的数据类型,比如-1代表int,-2代表double。
3、这样比固定内存大小的struct或class灵活许多,比用特殊字符串作间隔更加完善和可靠。