*** Communication with servers (we are client) ***/ More...
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. |
*** Communication with servers (we are client) ***/
Helper class for handling all client side communication.
Definition at line 261 of file network_udp.cpp.
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.
config | the GRF to handle |
Reimplemented from NetworkUDPSocketHandler.
Definition at line 404 of file network_udp.cpp.
References FGCM_EXACT, GRFConfig::filename, FindGRFConfig(), FindUnknownGRFName(), GRFConfig::flags, GCF_COPY, GCS_NOT_FOUND, GRFIdentifier::grfid, GRFConfig::ident, GRFConfig::info, GRFIdentifier::md5sum, GRFConfig::name, SetBit(), and GRFConfig::status.
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.
p | The received packet. | |
client_addr | The origin of the packet. |
Reimplemented from NetworkUDPSocketHandler.
Definition at line 337 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:
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)
p | The received packet. | |
client_addr | The origin of the packet. |
Reimplemented from NetworkUDPSocketHandler.
Definition at line 271 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(), UNKNOWN_GRF_NAME_PLACEHOLDER, and UpdateNetworkGameWindow().