示例#1
0
 public void SetSessionId(ushort sid)
 {
     m_SessionId    = sid;
     m_TempSendData = new FSPDataC2S();
     m_TempSendData.vkeys.Add(new FSPVKey());
     m_TempSendData.sid = sid;
 }
示例#2
0
 public void Receive(FSPDataC2S data)
 {
     if (m_RecvListener != null)
     {
         m_RecvListener(data);
     }
 }
示例#3
0
 public void Receive(FSPDataC2S data)
 {
     if (null != m_RecvListener)
     {
         m_RecvListener(data);
     }
 }
示例#4
0
        //------------------------------------------------------------
        #region 设置通用参数

        public void SetSessionId(ushort sid)
        {
            LOG_TAG_MAIN = "FSPClient_Main<" + sid.ToString("d4") + ">";
            LOG_TAG_SEND = "FSPClient_Send<" + sid.ToString("d4") + ">";
            LOG_TAG_RECV = "FSPClient_Recv<" + sid.ToString("d4") + ">";
            LOG_TAG      = LOG_TAG_MAIN;

            m_SessionId    = sid;
            m_TempSendData = new FSPDataC2S();
            m_TempSendData.vkeys.Add(new FSPVKey());
            m_TempSendData.sid = sid;
        }
示例#5
0
文件: FSPPlayer.cs 项目: zj831007/SGF
        //====================================================================
        //接收数据逻辑

        private void OnRecvFromSession(FSPDataC2S data)
        {
            if (m_session.IsEndPointChanged)
            {
                m_session.IsEndPointChanged = false;
                m_hasAuthed = false;
            }

            if (m_RecvListener != null)
            {
                for (int i = 0; i < data.msgs.Count; i++)
                {
                    m_RecvListener(this, data.msgs[i]);
                }
            }
        }
示例#6
0
    private void OnSessionReceive(FSPDataC2S data)
    {
        m_LastRecvTime = FSPServer.Instance.RealtimeSinceStartupMS;
        if (m_Session.IsEndPointChanged)
        {
            m_HasAuth = false;
        }

        if (m_RecvListener != null)
        {
            for (int i = 0; i < data.vkeys.Count; i++)
            {
                m_RecvListener(this, data.vkeys[i]);
            }
        }
    }
示例#7
0
    //------------------------------------------------------------

    private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
    {
        FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer);

        FSPSession session = GetSession(data.sid);

        if (session == null)
        {
            //没有这个玩家,不理它的数据
            return;
        }


        session.EndPoint = remotePoint;
        session.Receive(data);
    }
示例#8
0
        //------------------------------------------------------------

        private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
        {
            FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer);

            FSPSession session = GetSession(data.sid);

            if (session == null)
            {
                Debuger.LogWarning(LOG_TAG_RECV, "DoReceive() 收到一个未知的SID = " + data.sid);
                //没有这个玩家,不理它的数据
                return;
            }
            this.Log("DoReceive() Receive Buffer, SID={0}, IP={1}, Size={2}", session.Id, remotePoint, buffer.Length);

            session.EndPoint = remotePoint;
            session.Receive(data);
        }
示例#9
0
        //------------------------------------------------------------

        private void OnReceive(byte[] buffer, int size, IPEndPoint remotePoint)
        {
            FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(buffer);

            FSPSession session = GetSession(data.sid);

            if (session == null)
            {
                MyLogger.LogWarning(LOG_TAG_RECV, "DoReceive()", "unknown SID = " + data.sid);
                //player does not exist,reply nothing
                return;
            }
            this.Log("DoReceive() Receive Buffer, SID={0}, IP={1}, Size={2}", session.Id, remotePoint, buffer.Length);

            session.EndPoint = remotePoint;
            session.Receive(data);
        }
示例#10
0
        private void DoReceiveInMain()
        {
            m_RecvBufQueue.Switch();

            while (!m_RecvBufQueue.Empty())
            {
                var recvBufferRaw = m_RecvBufQueue.Pop();
                int ret           = m_Kcp.Input(recvBufferRaw, recvBufferRaw.Length);

                //收到的不是一个正确的KCP包
                if (ret < 0)
                {
                    Debuger.LogError("收到不正确的KCP包!Ret:{0}", ret);
                    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)
                        {
                            FSPDataC2S data = PBSerializer.NDeserialize <FSPDataC2S>(recvBuffer);
                            m_listener(data);
                        }
                        else
                        {
                            Debuger.LogError("找不到接收者!");
                        }
                    }
                }
            }
        }
示例#11
0
        //------------------------------------------------------------
        #region 设置通用参数

        public void SetSessionId(uint sid)
        {
            m_TempSendData = new FSPDataC2S();
            m_TempSendData.Vkeys.Add(new FSPVKey());
            m_TempSendData.Sid = sid;
        }