3.1.5.1 Client/Server Connect Sequence

Client/server connect sequence

Figure 5: Client/server connect sequence

A server has been launched and is in the process of accepting incoming connections.

  1. The client establishes a connection to the server as specified in [MC-DPL8R].

  2. The client sends a player connect message to the server:

    When the client sends the player connect message, it includes the user-provided password described in section 5.2, if present. When the server receives the message, it verifies the client has specified compatible values; if a higher layer indicated that a password is required, the client’s password string MUST exist and match exactly. If no password is required, the server SHOULD silently ignore any password string specified by the client.

  3. If the server successfully validates the password and other DN_INTERNAL_MESSAGE_PLAYER_CONNECT_INFO information, the server responds to the client:

    DN_SEND_CONNECT_INFO

    The DN_SEND_CONNECT_INFO message MUST contain the current game session state and     settings.

    Note For client/server, there are only two entries in the DN_NAMETABLE_ENTRY_INFO message as part of the DN_SEND_CONNECT_INFO packet.

    Note If a password was required, the message includes the DPNSESSION_REQUIREPASSWORD flag and a redundant echo of the password that had been successfully verified. If no password was required, the DPNSESSION_REQUIREPASSWORD SHOULD NOT be included, and the dwPasswordOffset and dwPasswordSize values SHOULD be 0.

    If the server is unable to verify the password and validation fails, the server sends a DN_CONNECT_FAILED message (section 2.2.1.3) with the hResultCode field set to DPNERR_INVALIDPASSWORD or to another validation failure code.

  4. Upon receipt of the DN_SEND_CONNECT_INFO message from the server, the client acknowledges the connection by returning:

    DN_ACK_CONNECT_INFO