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

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

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

  1. kcp->buffer = (char*)ikcp_malloc((kcp->mtu + IKCP_OVERHEAD) * 3);
  2. if (kcp->buffer == NULL) {
  3. ikcp_free(kcp);
  4. return NULL;
  5. }
  6. --------------
  7. if (size + (int)IKCP_OVERHEAD > (int)kcp->mtu) {
  8. ikcp_output(kcp, buffer, size);
  9. ptr = buffer;
  10. }
  11. ikcp_ack_get(kcp, i, &seg.sn, &seg.ts);
dzjeubhm

dzjeubhm1#

同问, 这个确实奇怪

xe55xuns

xe55xuns2#

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

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

相关问题