ikcp_send 发送的缓冲区长度限制?

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

ikcp_send 发送数据时,似乎有长度限制。
在 ikcp_send 函数中,有如下的条件判断:

if (count >= (int)IKCP_WND_RCV) return -2;

不明白为什么要增加这个条件判断?
我去掉这一行代码后,长度限制没有了,测试下来似乎也是正常的。
就算是要增加这个检查,否是应该修改为:

if (count >= (int)kcp->snd_wnd) return -2;
6pp0gazn

6pp0gazn1#

因为 const IUINT32 IKCP_WND_RCV = 128; //must >= max fragment size
而老代码貌似是 count 必须小于 max fragment size
有的版本直接是必须小于255 因为KCP使用1个byte 做分片ID。
即:如果大于最大分片能力,那么KCP无法发送这么大的包。

相关问题