```
buf := make([]byte, 4)
_, _ = xxx.Read(buf) // xxx 是net.Conn
bagFlag := uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16 | uint32(data[3])<<24
// fmt.Println("") // 如果注释掉这一条,bagFlag的值不是预期的值,加上就能正常获取预期的值。
if bagFlag != 4294967295 {
continue
}
```
那句fmt.Println 注释掉就没法获取到预期的值,加上就正常了。吐血啦,不知道原因在哪啊。
Reader interface 并不是全部读完了才会返回, 你需要等返回的err 是EOF才能下一步,加了fmt.Println之后相当于增加了等待了时间让网络读取完数据
#4
更多评论
data:=[4]byte{255,255,255,255}
bagFlag := uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16 | uint32(data[3])<<24
先看你data数据对不对
#2