private void HandleRecvQueue() { m_RecvQueue.Switch(); while (!m_RecvQueue.Empty()) { var recvBufferRaw = m_RecvQueue.Pop(); int ret = m_Kcp.Input(recvBufferRaw); //收到的不是一个正确的KCP包 if (ret < 0) { if (m_Listener != null) { m_Listener(recvBufferRaw, recvBufferRaw.Length, m_RemotePoint); } return; } m_NeedKcpUpdateFlag = true; for (int size = m_Kcp.PeekSize(); size > 0; size = m_Kcp.PeekSize()) { var recvBuffer = new byte[size]; if (m_Kcp.Recv(recvBuffer) > 0) { if (m_Listener != null) { m_Listener(recvBuffer, size, m_RemotePoint); } } } } }