kcp icon indicating copy to clipboard operation
kcp copied to clipboard

kcp->buffer 的size为什么是 (kcp->mtu + IKCP_OVERHEAD) * 3 ?

Open YYChildren opened this issue 5 years ago • 2 comments

对比下代码,应该1倍就够了,3倍应该是浪费

	kcp->buffer = (char*)ikcp_malloc((kcp->mtu + IKCP_OVERHEAD) * 3);
	if (kcp->buffer == NULL) {
		ikcp_free(kcp);
		return NULL;
	}
--------------
		if (size + (int)IKCP_OVERHEAD > (int)kcp->mtu) {
			ikcp_output(kcp, buffer, size);
			ptr = buffer;
		}
		ikcp_ack_get(kcp, i, &seg.sn, &seg.ts);

YYChildren avatar Apr 29 '20 01:04 YYChildren

同问, 这个确实奇怪

YuriArthas avatar Sep 07 '20 03:09 YuriArthas

我自己的项目里把代码改了,实测没有问题:

kcp->buffer = (char*)ikcp_malloc(kcp->mtu);

YYChildren avatar Sep 07 '20 12:09 YYChildren