kcp icon indicating copy to clipboard operation
kcp copied to clipboard

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

Open rockcarry opened this issue 5 years ago • 1 comments

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

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

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

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

rockcarry avatar Aug 18 '20 06:08 rockcarry

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

sgf avatar Sep 28 '20 16:09 sgf