Protected Member Functions

# ClientNetworkUDPSocketHandler Class Reference

*** Communication with servers (we are client) ***/ More...

Inheritance diagram for ClientNetworkUDPSocketHandler:

## Protected Member Functions
virtual void | Receive_SERVER_RESPONSE (Packet *p, NetworkAddress *client_addr)
| Return of server information to the client.
virtual void | Receive_MASTER_RESPONSE_LIST (Packet *p, NetworkAddress *client_addr)
| The server sends a list of servers.
virtual void | Receive_SERVER_NEWGRFS (Packet *p, NetworkAddress *client_addr)
| The return of the client's request of the names of some NewGRFs.
virtual void | HandleIncomingNetworkGameInfoGRFConfig (GRFConfig *config)
| Function that is called for every GRFConfig that is read when receiving a NetworkGameInfo.

## Detailed Description

*** Communication with servers (we are client) ***/

Helper class for handling all client side communication.

Definition at line 325 of file network_udp.cpp.

## Member Function Documentation

void ClientNetworkUDPSocketHandler::HandleIncomingNetworkGameInfoGRFConfig | ( | GRFConfig * | config | ) | `[protected, virtual]`

Function that is called for every GRFConfig that is read when receiving a NetworkGameInfo.

Only grfid and md5sum are set, the rest is zero. This function must set all appropriate fields. This GRF is later appended to the grfconfig list of the NetworkGameInfo.

Parameters:

  | config | the GRF to handle

Reimplemented from NetworkUDPSocketHandler.

Definition at line 468 of file network_udp.cpp.

References FGCM_EXACT, GRFConfig::filename, FindGRFConfig(), FindUnknownGRFName(), GRFConfig::flags, GCF_COPY, GRFIdentifier::grfid, GRFConfig::ident, GRFConfig::info, GRFIdentifier::md5sum, GRFConfig::name, SetBit(), GRFConfig::status, and GRFConfig::url.

void ClientNetworkUDPSocketHandler::Receive_MASTER_RESPONSE_LIST | ( | Packet * | p,
|  | NetworkAddress * | client_addr |
| ) |  |  | `[protected, virtual]`

The server sends a list of servers.

uint8 The protocol version. For each server: 4 or 16 bytes of IPv4 or IPv6 address. uint8 The port.

Parameters:

  | p | The received packet.
  | client_addr | The origin of the packet.

Reimplemented from NetworkUDPSocketHandler.

Definition at line 401 of file network_udp.cpp.

References NetworkSocketHandler::HasClientQuit(), NetworkUDPQueryServer(), Packet::Recv_uint16(), Packet::Recv_uint32(), Packet::Recv_uint8(), NetworkAddress::SetPort(), SLT_END, SLT_IPv4, and SLT_IPv6.

void ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE | ( | Packet * | p,
|  | NetworkAddress * | client_addr |
| ) |  |  | `[protected, virtual]`

Return of server information to the client.

This packet has several legacy versions, so we list the version and size of each "field":

Version: Bytes: Description: all 1 the version of this packet's structure

4+ 1 number of GRFs attached (n) 4+ n * 20 unique identifier for GRF files. Consists of:

- one 4 byte variable with the GRF ID
- 16 bytes (sent sequentially) for the MD5 checksum of the GRF

3+ 4 current game date in days since 1-1-0 (DMY) 3+ 4 game introduction date in days since 1-1-0 (DMY)

2+ 1 maximum number of companies allowed on the server 2+ 1 number of companies on the server 2+ 1 maximum number of spectators allowed on the server

1+ var string with the name of the server 1+ var string with the revision of the server 1+ 1 the language run on the server (0 = any, 1 = English, 2 = German, 3 = French) 1+ 1 whether the server uses a password (0 = no, 1 = yes) 1+ 1 maximum number of clients allowed on the server 1+ 1 number of clients on the server 1+ 1 number of spectators on the server 1 & 2 2 current game date in days since 1-1-1920 (DMY) 1 & 2 2 game introduction date in days since 1-1-1920 (DMY) 1+ var string with the name of the map 1+ 2 width of the map in tiles 1+ 2 height of the map in tiles 1+ 1 type of map: (0 = temperate, 1 = arctic, 2 = desert, 3 = toyland) 1+ 1 whether the server is dedicated (0 = no, 1 = yes)

Parameters:

  | p | The received packet.
  | client_addr | The origin of the packet.

Reimplemented from NetworkUDPSocketHandler.

Definition at line 335 of file network_udp.cpp.

References _network_udp_server, ClearGRFConfigList(), DEBUG, GCS_NOT_FOUND, NetworkAddress::GetAddress(), NetworkAddress::GetAddressAsString(), NetworkAddress::GetHostname(), GRFConfig::GetName(), GRFConfig::info, IsNetworkCompatibleVersion(), lastof, NETWORK_MAX_GRF_COUNT, NetworkGameListAddItem(), GRFConfig::next, PACKET_UDP_CLIENT_GET_NEWGRFS, NetworkUDPSocketHandler::ReceiveNetworkGameInfo(), Packet::Send_uint8(), NetworkSocketHandler::SendGRFIdentifier(), NetworkUDPSocketHandler::SendPacket(), GRFConfig::status, strecat(), and UpdateNetworkGameWindow().

The documentation for this class was generated from the following file:

- src/network/network_udp.cpp