udp.h File Reference

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

Detailed Description

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.


Enumeration Type Documentation

Enum with all types of UDP packets.

The order MUST not be changed

Enumerator:
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).

Definition at line 81 of file udp.h.

The types of server lists we can get.

Enumerator:
SLT_IPv4 

Get the IPv4 addresses.

SLT_IPv6 

Get the IPv6 addresses.

SLT_AUTODETECT 

Autodetect the type based on the connection.

SLT_END 

End of 'arrays' marker.

Definition at line 98 of file udp.h.


Generated on Wed Apr 21 20:32:00 2010 for OpenTTD by  doxygen 1.6.1