funny / link

Go语言网络层脚手架
Do What The F*ck You Want To Public License
1.62k stars 385 forks source link

packetDecoder如果读到的不完整的网络包,会等待数据到齐后再解析吗? #41

Closed ericx10ng closed 8 years ago

ericx10ng commented 8 years ago

看到Decode里调用了ReadFull, 如果头部有4个字节,但是只有2字节到了,会出错吧? 当然机率很小, 如果包不完整,想要block住等待,该如何实现呢?

bg5sbk commented 8 years ago

io.ReadFull会循环调用io.Reader.Read(),直到所需的数据都读到。如果读取过程中发生io错误,会返回已读字节数和具体错误。这就是你要的block住等待消息的效果。