非流式模式下ikcp_recv有可能只收到部分数据?

t2a7ltrp  于 2022-10-25  发布在  其他
关注(0)|答案(1)|浏览(164)

比如发送方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了。

xzv2uavs

xzv2uavs1#

只有 4 3 2 1 0 都收到,ikcp_recv 才能拿到数据

相关问题