public void Send(Message msg)
        {
            NetOutgoingMessage packet = _connection.Peer.CreateMessage();

            lock (_globalLock)
            {
                _stream.Position = 0;
                msg.Serialize(_writer);

                int numBytes = (int)_stream.Position;
                packet.Write(numBytes);
                packet.Write(_buffer, 0, numBytes);
                NetSendResult result = _connection.SendMessage(packet, Convert(msg.Reliability), 0);

                if (result == NetSendResult.FailedNotConnected)
                {
                    throw new Exception("NetSendResult.FailedNotConnected");
                }
            }
        }
        public void Send(Message msg)
        {
            NetOutgoingMessage packet = _connection.Peer.CreateMessage();
            lock (_globalLock)
            {
                _stream.Position = 0;
                msg.Serialize(_writer);

                int numBytes = (int) _stream.Position;
                packet.Write(numBytes);
                packet.Write(_buffer, 0, numBytes);
                NetSendResult result = _connection.SendMessage(packet, Convert(msg.Reliability), 0);

                if (result == NetSendResult.FailedNotConnected)
                    throw new Exception("NetSendResult.FailedNotConnected");
            }
        }