最近在一个程序中用到了异步socket,碰到了一些疑惑,请高手解答。
假设发送方发过来一个数据包,协议采用包头+长度。由于数据过大,底层tcp./ip做了分包处理,
分两次发过来。这样就产生了2 次FD_READ事件,而接收方在接收的时候Onreceive函数里首先recv()一次,
然后循环,根据长度,判断接收到的数据长度是不是一个完整的数据包,如果实际接收长度小于协议里面的长度,
就再recv一次。如果只有一次FD_READ事件没问题,但这一个完整的包产生了2次FD_READ事件,我就感到困惑了。
小弟是新手,意思不知道大家读懂没有。求高手解惑
