public override bool Receive(out TransportEventData eventData)
        {
            Telepathy.Message msg;
            bool state = false;

            if (IsServer)
            {
                state = server.GetNextMessage(out msg);
            }
            else
            {
                state = client.GetNextMessage(out msg);
            }

            if (state)
            {
                //NetDebug.Log("接收到消息:" + msg.eventType);
                ENetworkEvent msgType = ENetworkEvent.DataEvent;
                switch (msg.eventType)
                {
                case Telepathy.EventType.Connected:
                    msgType = ENetworkEvent.ConnectEvent;
                    break;

                case Telepathy.EventType.Data:
                    msgType = ENetworkEvent.DataEvent;
                    break;

                case Telepathy.EventType.Disconnected:
                    msgType = ENetworkEvent.DisconnectEvent;
                    break;

                default:
                    break;
                }
                eventData = new TransportEventData()
                {
                    type           = msgType,
                    connectionId   = msg.connectionId,
                    data           = msg.data,
                    disconnectInfo = this.m_disconnectInfo,
                };
                if (msgType == ENetworkEvent.DisconnectEvent)
                {
                    m_disconnectInfo = default(EDisconnectInfo);
                }
            }
            else
            {
                eventData = default(TransportEventData);
            }

            return(state);
        }
        public override bool Receive(out TransportEventData eventData)
        {
            SimpleTCP.Message msg;
            bool state = false;

            if (IsServer)
            {
                state = server.GetNextMessage(out msg);
            }
            else
            {
                state = client.GetNextMessage(out msg);
            }

            if (state)
            {
                //NetDebug.Log("接收到消息:" + msg.eventType);
                ENetworkEvent msgType = ENetworkEvent.DataEvent;
                switch (msg.eventType)
                {
                case SimpleTCP.EventType.Connected:
                    msgType = ENetworkEvent.ConnectEvent;
                    break;

                case SimpleTCP.EventType.Data:
                    msgType = ENetworkEvent.DataEvent;
                    break;

                case SimpleTCP.EventType.Disconnected:
                    msgType = ENetworkEvent.DisconnectEvent;
                    break;

                default:
                    break;
                }
                EDisconnectReason disReason = EDisconnectReason.ConnectionFailed;
                if (msg.disconnectReason == SimpleTCP.DisconnectReason.ConnectionFailed)
                {
                    disReason = EDisconnectReason.ConnectionFailed;
                }
                else if (msg.disconnectReason == SimpleTCP.DisconnectReason.DisconnectPeerCalled)
                {
                    disReason = EDisconnectReason.DisconnectPeerCalled;
                }

                eventData = new TransportEventData()
                {
                    type           = msgType,
                    connectionId   = msg.connectionId,
                    data           = msg.data,
                    disconnectInfo = new EDisconnectInfo()
                    {
                        Reason = disReason,
                    }
                };
            }
            else
            {
                eventData = default(TransportEventData);
            }

            return(state);
        }
        protected void Add_Event( ENetworkEvent event_type, ESessionID session_id )
        {
            CLog.Log( ELoggingChannel.Network, ELogLevel.Medium, String.Format( "Adding network event {0} on session id {1}", event_type.ToString(), (int) session_id ) );

            m_CurrentFrame.Add_Event( event_type, session_id );
        }