Basic functions to receive and send UDP packets. More...
#include "address.h"
#include "game.h"
#include "packet.h"
Go to the source code of this file.
Data Structures | |
class | NetworkUDPSocketHandler |
Base socket handler for all UDP sockets. More... | |
Defines | |
#define | DECLARE_UDP_RECEIVE_COMMAND(type) virtual void NetworkPacketReceive_## type ##_command(Packet *p, NetworkAddress *client_addr) |
#define | DEF_UDP_RECEIVE_COMMAND(cls, type) void cls ##NetworkUDPSocketHandler::NetworkPacketReceive_ ## type ## _command(Packet *p, NetworkAddress *client_addr) |
Enumerations | |
enum | PacketUDPType { PACKET_UDP_CLIENT_FIND_SERVER, PACKET_UDP_SERVER_RESPONSE, PACKET_UDP_CLIENT_DETAIL_INFO, PACKET_UDP_SERVER_DETAIL_INFO, PACKET_UDP_SERVER_REGISTER, PACKET_UDP_MASTER_ACK_REGISTER, PACKET_UDP_CLIENT_GET_LIST, PACKET_UDP_MASTER_RESPONSE_LIST, PACKET_UDP_SERVER_UNREGISTER, PACKET_UDP_CLIENT_GET_NEWGRFS, PACKET_UDP_SERVER_NEWGRFS, PACKET_UDP_MASTER_SESSION_KEY, PACKET_UDP_END } |
Enum with all types of UDP packets. More... | |
enum | ServerListType { SLT_IPv4 = 0, SLT_IPv6 = 1, SLT_AUTODETECT, SLT_END = SLT_AUTODETECT } |
The types of server lists we can get. More... |
Basic functions to receive and send UDP packets.
*** Requesting game information from a server ***
This describes the on-the-wire structure of the request and reply packet of the NetworkGameInfo (see game.h) data.
--- Points of attention ---
--- Request --- Bytes: Description: 2 size of the whole packet, in this case 3 1 type of packet, in this case PACKET_UDP_CLIENT_FIND_SERVER (0) This packet would look like: { 0x03, 0x00, 0x00 }
--- Reply --- Version: Bytes: Description: all 2 size of the whole packet all 1 type of packet, in this case PACKET_UDP_SERVER_RESPONSE (1) 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)
Definition in file udp.h.
enum PacketUDPType |
Enum with all types of UDP packets.
The order MUST not be changed
PACKET_UDP_CLIENT_FIND_SERVER |
Queries a game server for game information. |
PACKET_UDP_SERVER_RESPONSE |
Reply of the game server with game information. |
PACKET_UDP_CLIENT_DETAIL_INFO |
Queries a game server about details of the game, such as companies. |
PACKET_UDP_SERVER_DETAIL_INFO |
Reply of the game server about details of the game, such as companies. |
PACKET_UDP_SERVER_REGISTER |
Packet to register itself to the master server. |
PACKET_UDP_MASTER_ACK_REGISTER |
Packet indicating registration has succedeed. |
PACKET_UDP_CLIENT_GET_LIST |
Request for serverlist from master server. |
PACKET_UDP_MASTER_RESPONSE_LIST |
Response from master server with server ip's + port's. |
PACKET_UDP_SERVER_UNREGISTER |
Request to be removed from the server-list. |
PACKET_UDP_CLIENT_GET_NEWGRFS |
Requests the name for a list of GRFs (GRF_ID and MD5). |
PACKET_UDP_SERVER_NEWGRFS |
Sends the list of NewGRF's requested. |
PACKET_UDP_MASTER_SESSION_KEY |
Sends a fresh session key to the client. |
PACKET_UDP_END |
Must ALWAYS be on the end of this list!! (period). |
enum ServerListType |