private void HandleKcpSend(byte[] buff, int size) { if (_socket != null && _connected) { // Debug.Log($">>>> Send time {GetMSClock()}, size: {size}"); byte[] payload = KCPDatagram.BuildKCP(buff, size); _socket.Send(payload, 0, payload.Length, SocketFlags.None); // _socket.Send(buff, 0, size, SocketFlags.None); } }
public override void Disconnect() { if (!_connected) { return; } byte[] payload = KCPDatagram.BuildRST(_conv); _socket.Send(payload, 0, payload.Length, SocketFlags.None); _socket.Close(); _connected = false; }
void ProcessReceiveData(int count) { KCPDatagram.Command cmd = KCPDatagram.GetCMD(_buffer); uint conv = KCPDatagram.GetConv(_buffer); KCPDatagram kcpCmd = new KCPDatagram(); kcpCmd.cmd = cmd; lock (_cmdQueue) { _cmdQueue.Enqueue(kcpCmd); } if (_connected && cmd == KCPDatagram.Command.KCP) { byte[] messageBytes = KCPDatagram.GetData(_buffer, count); lock (_kcpQueue) { _kcpQueue.Enqueue(messageBytes); } return; } }