请教一个socket通信的数据有关问题
请问一个socket通信的数据问题?
我定义一个数据:
1.如何对上面结构体STRUCT进行crc-32算法
2.如果我把上面crc-32算法保存为unsigned char name[4],是不是应该这么定义通信的数据:
------解决方案--------------------
没对齐吧
一般在设计结构时,把校验作为结构的一部分
------解决方案--------------------
一般来说,消息分为头和体,分别计算校验
那如果把验证作为结构的一部分,那我教验什么数据呀?
除去验证的部分
------解决方案--------------------
当通信中有命令和数据传输时,一般定义2种数据格式,并提供2类api
一般的消息头可以是这样:
消息头长度 数据长度
命令类型 参数1 ... 参数n 对齐
校验
数据的长度通常不是固定的,所以要指明数据长度,便于接收以及找到校验码的地址
我定义一个数据:
- C/C++ code
struct login { unsigned char head, unsigned char name[10], unsigned char passsword[10], }
1.如何对上面结构体STRUCT进行crc-32算法
2.如果我把上面crc-32算法保存为unsigned char name[4],是不是应该这么定义通信的数据:
- C/C++ code
struct login_ex { struct login loginInfo, unsigned char crc[4] }
------解决方案--------------------
没对齐吧
一般在设计结构时,把校验作为结构的一部分
------解决方案--------------------
一般来说,消息分为头和体,分别计算校验
那如果把验证作为结构的一部分,那我教验什么数据呀?
除去验证的部分
------解决方案--------------------
当通信中有命令和数据传输时,一般定义2种数据格式,并提供2类api
一般的消息头可以是这样:
消息头长度 数据长度
命令类型 参数1 ... 参数n 对齐
校验
数据的长度通常不是固定的,所以要指明数据长度,便于接收以及找到校验码的地址