Beispiel #1
0
    /// <summary>
    /// handles an incoming host info message
    /// </summary>
    private void HandleHostInfo(int connectionId, byte[] buffer, int size)
    {
        NetUtilHostState state = ConstructType <NetUtilHostState>(buffer, 1, size - 1);

        m_hostTime = state.time;
        m_salt     = state.salt;

        m_state = NetUtilState.CONNECTED;
    }
Beispiel #2
0
    /// <summary>
    /// handles connection messages
    /// </summary>
    /// <param name="connectionId">connection id the message came from</param>
    private void HandleConnect(int connectionId)
    {
        if (m_isHost)
        {
            if (!m_connections.ContainsKey(connectionId))
            {
                AddConnection(connectionId, "");
                byte error;

                NetUtilHostState state = new NetUtilHostState();

                state.time = m_hostTime;
                state.salt = ++m_salt;

                SendMessage(m_host, connectionId, m_messageChannel, NetUtilMessageType.HOST_INFO, state, out error);

                foreach (NetUtilObjectCreator creator in m_activeObjects.Values)
                {
                    SendMessage(m_host, connectionId, m_messageChannel, NetUtilMessageType.CREATE_OBJECT, creator, out error);
                }

                m_state = NetUtilState.CONNECTED;
            }
        }
        else
        {
            if (connectionId != m_hostId)
            {
                DebugConsole.Log("an unknown connection attempt has occured.");
            }
            else
            {
                SendMessage(NetUtilMessageType.CONNECTION_INFO, m_name);
            }
        }
    }