tcp socket数据头混乱

时间:2015-04-02 08:06:35

标签: sockets tcp

我正在研究tcp套接字协议,据说我必须按以下格式发送数据头。

<MessageID=100,DataLen=16000,Checksum=0923>

因此标头长度将是48字节,这是固定的。这里MessageID是要发送的消息标识符,DataLen是实际数据大小(不包括头大小),Checksum是正在发送的数据的校验和。

这是构建tcp标头的正确方法吗?通过这种方式,我将不得不使用太多的字符串操作来构建它,并且当我在接收器端解析它时需要执行相同的操作。

我可以向前移动到固定大小的标题,如12bytes,即三个整数值表示相同。或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我肯定会问这个标题格式是什么意思。他们可能不希望你用纯文本打包标题。这是浪费带宽和CPU性能。此外,代码将更加复杂。在我看来,你有一个8位的消息ID,16位数据长度和16位校验和。处理它的最好方法是五个字节的固定标头。