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

4dc9hkyq  于 2022-10-25  发布在  其他
关注(0)|答案(2)|浏览(140)

对比下代码,应该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);
dzjeubhm

dzjeubhm1#

同问, 这个确实奇怪

xe55xuns

xe55xuns2#

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

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

相关问题