1. 首页
  2. 主题
  3. Go问与答

tcp粘包包头为什么定义4字节存储消息体长度

jiangyd · · 1920 次点击
``` package main import ( "encoding/binary" "fmt" ) func main() { b:=make([]byte,4) binary.BigEndian.PutUint32(b,510) fmt.Println(b) fmt.Println(binary.BigEndian.Uint32(b)) } ``` 运行结果 ``` [0 0 1 254] 510 ``` 经常看到tcp粘包问题的解决方案,就是在包头定义包体的长度,为什么是4字节,这个运算结果是怎么算的,那个大佬解释下,或推荐查询相关资料
更多评论
czyt
云在青天水在瓶
不必纠结几个字节,5个字节也是可以的。一般是做包头+len+data+crc 希望对您有帮助
#1
四字節一個int ,足夠大多數的運用場景了。此外端序也要一致。
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中