Ejemplo n.º 1
0
 public override void DataAnalyze(Socket client, _MSG_HEADER header, byte[] data)
 {
     if (header.m_byType == 21)
     {
         LoginLineAnalyze(client, header, data);
     }
 }
Ejemplo n.º 2
0
        // Сводка:
        //  Called when new packets arrived
        private bool LoginLineAnalyze(Socket n, _MSG_HEADER pMsgHeader, byte[] pMsg)
        {
            switch ((int)pMsgHeader.m_bySubType)
            {
            case _crypty_key_inform_locl.ID:
                CryptoKeyResult(n, pMsg);
                break;

            case _login_account_result_locl.ID:
                AfterLogin(n, pMsg);
                break;

            case _push_close_result_locl.ID:
                PushCloseAccountResult(n, pMsg);
                break;

            case _world_list_result_locl.ID:
                WorldListResult(pMsg);
                break;

            case _world_user_inform_locl.ID:
                WorldListInform(n, pMsg);
                break;

            case _select_world_result_locl.ID:
                SelectWorldResult(n, pMsg);
                break;
            }
            return(true);
        }
Ejemplo n.º 3
0
        private void ReceiveCallback(IAsyncResult ar)
        {
            StateObject state  = (StateObject)ar.AsyncState;
            Socket      client = state.WorkSocket;

            int bytesRead = client.EndReceive(ar);

            try
            {
                if (_acceptRecive)
                {
                    for (int i = 0; i < bytesRead;)
                    {
                        _MSG_HEADER msgHeader = BinaryStructConverter.FromByteArray <_MSG_HEADER>(state.Buffer, i, 4);

                        byte[] data = new byte[msgHeader.m_wSize - 4];
                        for (int j = 0; j < msgHeader.m_wSize - 4; ++j)
                        {
                            data[j] = state.Buffer[i + j + 4];
                        }

                        i += msgHeader.m_wSize;


                        DataAnalyze(client, msgHeader, data);
                    }

                    client.BeginReceive(state.Buffer, 0, StateObject.BufferSize, 0,
                                        ReceiveCallback, state);
                }
                else
                {
                    _receiveDone.Set();
                }
            }
            catch (Exception)
            {
                OnClientError();
            }
        }
Ejemplo n.º 4
0
 public virtual void DataAnalyze(Socket client, _MSG_HEADER header, byte[] data)
 {
 }