# tcp_game.h File Reference

Basic functions to receive and send TCP packets for game purposes. More...

`#include "os_abstraction.h"`
`#include "tcp.h"`
`#include "../network_type.h"`
`#include "../../core/pool_type.hpp"`

Go to the source code of this file.

## Data Structures

class | NetworkClientSocket
| Base socket handler for all TCP sockets. More...

## Defines

#define | FOR_ALL_CLIENT_SOCKETS_FROM(var, start) FOR_ALL_ITEMS_FROM(NetworkClientSocket, clientsocket_index, var, start)
#define | FOR_ALL_CLIENT_SOCKETS(var) FOR_ALL_CLIENT_SOCKETS_FROM(var, 0)

## Typedefs

typedef Pool < NetworkClientSocket, ClientIndex, 8, MAX_CLIENT_SLOTS > | NetworkClientSocketPool

## Enumerations

enum

{
PACKET_SERVER_FULL, PACKET_SERVER_BANNED, PACKET_CLIENT_JOIN, PACKET_SERVER_ERROR,
PACKET_CLIENT_COMPANY_INFO, PACKET_SERVER_COMPANY_INFO, PACKET_SERVER_CLIENT_INFO, PACKET_SERVER_NEED_PASSWORD,
PACKET_CLIENT_PASSWORD, PACKET_SERVER_WELCOME, PACKET_CLIENT_GETMAP, PACKET_SERVER_WAIT,
PACKET_SERVER_MAP, PACKET_CLIENT_MAP_OK, PACKET_SERVER_JOIN, PACKET_SERVER_FRAME,
PACKET_SERVER_SYNC, PACKET_CLIENT_ACK, PACKET_CLIENT_COMMAND, PACKET_SERVER_COMMAND,
PACKET_CLIENT_CHAT, PACKET_SERVER_CHAT, PACKET_CLIENT_SET_PASSWORD, PACKET_CLIENT_SET_NAME,
PACKET_CLIENT_QUIT, PACKET_CLIENT_ERROR, PACKET_SERVER_QUIT, PACKET_SERVER_ERROR_QUIT,
PACKET_SERVER_SHUTDOWN, PACKET_SERVER_NEWGAME, PACKET_SERVER_RCON, PACKET_CLIENT_RCON,
PACKET_SERVER_CHECK_NEWGRFS, PACKET_CLIENT_NEWGRFS_CHECKED, PACKET_SERVER_MOVE, PACKET_CLIENT_MOVE,
PACKET_SERVER_COMPANY_UPDATE, PACKET_SERVER_CONFIG_UPDATE, PACKET_END
}

| Enum with all types of UDP packets. More...
enum | ClientStatus { STATUS_INACTIVE, STATUS_AUTHORIZING, STATUS_AUTH, STATUS_MAP_WAIT, STATUS_MAP, STATUS_DONE_MAP, STATUS_PRE_ACTIVE, STATUS_ACTIVE }
| Status of a client. More...

## Variables

NetworkClientSocketPool | _networkclientsocket_pool

## Detailed Description

Basic functions to receive and send TCP packets for game purposes.

Definition in file tcp_game.h.

## Enumeration Type Documentation

anonymous enum

Enum with all types of UDP packets.

The order of the first 4 packets MUST not be changed, as it protects old clients from joining newer servers (because SERVER_ERROR is the respond to a wrong revision)

Enumerator:

  PACKET_END | Must ALWAYS be on the end of this list!! (period).

Definition at line 30 of file tcp_game.h.

enum ClientStatus

Status of a client.

Enumerator:

  STATUS_INACTIVE | The client is not connected nor active.
  STATUS_AUTHORIZING | The client is authorizing.
  STATUS_AUTH | The client is authorized.
  STATUS_MAP_WAIT | The client is waiting as someone else is downloading the map.
  STATUS_MAP | The client is downloading the map.
  STATUS_DONE_MAP | The client has downloaded the map.
  STATUS_PRE_ACTIVE | The client is catching up the delayed frames.
  STATUS_ACTIVE | The client is active within in the game.

Definition at line 76 of file tcp_game.h.