比如发送方ikcp_send一个大约是5个mtu大小的数据, 在内部分成了5个包,frg分别是4,3,2,1,0
如果在接收方调用ikcp_recv时, rcv_queue里因为网络原因,只收到了4,3,2这三个包, 于是一次ikcp_recv只能拿到部分数据,对吗?1,0这两个包需要下一次ikcp_recv才能收到。
这种情况下,是不是应用层一定要在包前边加上length了?
如果ikcp_recv里只有找到fragment==0时才返回数据,那上层就是一次ikcp_send对应一次ikcp_recv了。
1条答案
按热度按时间xzv2uavs1#
只有 4 3 2 1 0 都收到,ikcp_recv 才能拿到数据