Esempio n. 1
0
        void recvMsgs()
        {
            int len = 0;

            try
            {
                len = m_socket.Receive(m_recvBuf, 0, kBufferSize, SocketFlags.None);
            }
            catch (SocketException ex)
            {
                if (m_socket.Connected == false)
                {
                    Debug.Log("Disconnected from server!!");
                    m_curState = State.DISCONNECTED;
                    DisConnectedEventArgs arg = new DisConnectedEventArgs();
                    arg.eErrorCode = EConnectError.eCE_LoseConnect;
                    if (OnDisConnected != null)
                    {
                        OnDisConnected(this, arg);
                    }
                }
                if (ex.SocketErrorCode != SocketError.NoData && ex.SocketErrorCode != SocketError.WouldBlock)
                {
                    Debug.LogError(ex);
                    Debug.LogErrorFormat("ErrorCode:{0}", ex.SocketErrorCode);
                }
                return;
            }

            if (m_recvPool.WriteSize < len)
            {
                Debug.LogError("Too much messages, disconnected from server!!");
                if (m_curState != State.DISCONNECTED)
                {
                    shutDown();
                    DisConnectedEventArgs arg = new DisConnectedEventArgs();
                    arg.eErrorCode = EConnectError.eCE_LoseConnect;
                    OnDisConnected(this, arg);
                }
                return;
            }

            m_recvPool.PushData(m_recvBuf, 0, len);
        }
Esempio n. 2
0
 public void doUpdate()
 {
     if (m_curState == State.CONNECT_FAILED)
     {
         m_curState = State.DISCONNECTED;
         DisConnectedEventArgs arg = new DisConnectedEventArgs();
         arg.eErrorCode = EConnectError.eCE_LoseConnect;
         if (OnDisConnected != null)
         {
             OnDisConnected(this, arg);
         }
     }
     else if (m_curState == State.CONNECTED)
     {
         m_socket.Blocking = false;
         sendAllMsgs();
         recvMsgs();
         dispatchMsgs();
     }
 }
Esempio n. 3
0
 void OnDisConnected(object sender, DisConnectedEventArgs e)
 {
     connected = false;
 }