Protected Member Functions

ClientNetworkUDPSocketHandler Class Reference

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

Inheritance diagram for ClientNetworkUDPSocketHandler:
NetworkUDPSocketHandler NetworkSocketHandler

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. Constists 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: