java tcp发包_Java TCP 校验问题,求助

协议格式:

1.uint16 消息长度 msgLen,下面的 2,3,4 的总 byte 长度,不包括 msgLen 本身,2,3,4 统称为 msgData

2.uint8 校验字段,算法如下:

发送的时候:

var cbCheckCode byte=0

for i = 1; i < msgLen; i++ {

cbCheckCode += msgData[i]

}

result = ^cbCheckCode + 1//然后把结果 result 写入 uint8 校验字段 msgData[0]

接收的时候:

var cbCheckCode byte=msgData[0]

for i = 1; i < msgLen; i++ {

cbCheckCode += msgData[i]

}

if 0 != cbCheckCode {

return//校验结果有误,报错

}

消息数据:

3.uint32 消息号:uint32(mainCmdID) | uint32(subCmdID)<<16,mainCmdID (主消息号)和 subCmdID (子消息号)都是 uint16

4.byte 字节流,消息数据 data,一般是 struct 的结构体数据转换成字节流,到时候看具体用到的数据类型再说怎么转换,比如 string 类型,转换成字节流的话,前面 2 个字节表示长度,后面的就是 string 的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值