diff --git a/Kcp/Kcp.cs b/Kcp/Kcp.cs index 6a0cc0e..eb3f2da 100644 --- a/Kcp/Kcp.cs +++ b/Kcp/Kcp.cs @@ -18,6 +18,7 @@ public Kcp(uint conv_, IKcpCallback callback, IRentable rentable = null) { callbackHandle = callback; this.rentable = rentable; + buffer = CreateBuffer(BufferNeedSize); } diff --git a/Kcp/KcpCore.cs b/Kcp/KcpCore.cs index 15db257..a0b3f34 100644 --- a/Kcp/KcpCore.cs +++ b/Kcp/KcpCore.cs @@ -298,8 +298,9 @@ protected int BufferNeedSize #endregion - public ISegmentManager SegmentManager { get; set; } - public KcpCore(uint conv_) + public ISegmentManager SegmentManager { get; set; } + + public KcpCore(uint conv_, bool initBuffer = true) { conv = conv_; @@ -308,7 +309,10 @@ public KcpCore(uint conv_) rmt_wnd = IKCP_WND_RCV; mtu = IKCP_MTU_DEF; mss = mtu - IKCP_OVERHEAD; - buffer = CreateBuffer(BufferNeedSize); + if (initBuffer) + { + buffer = CreateBuffer(BufferNeedSize); + } rx_rto = IKCP_RTO_DEF; rx_minrto = IKCP_RTO_MIN;