internal void ReceiveMessage(IntPtr msgPtr)
        {
            NetMsg structure = Marshal.PtrToStructure <NetMsg>(msgPtr);

            try
            {
                this.OnMessage(structure.Connection, structure.Identity, structure.DataPtr, structure.DataSize, structure.RecvTime, structure.MessageNumber, structure.Channel);
            }
            finally
            {
                structure.Release(msgPtr);
            }
        }