It is used to find Quake servers, get info about them, and connect to them.
Once connected, the Quake game protocol (documented elsewhere) is used.
General notes:
game_name is currently always "QUAKE", but is there so this same protocol
can be used for future games as well; can you say Quake2?
string game_name "QUAKE"
string game_name "QUAKE"
byte player_number
string rule
string password
string command
long port
string reason
string server_address
string host_name
string level_name
byte current_players
byte max_players
byte player_number
long colors
long connect_time
string address
string rule
string reply
GLsizei const GLfloat * value
#define CCREP_SERVER_INFO
#define CCREP_PLAYER_INFO
#define CCREQ_PLAYER_INFO
#define NET_PROTOCOL_VERSION
#define CCREQ_SERVER_INFO
- Note
- There are two address forms used above. The short form is just a port number. The address that goes along with the port is defined as "whatever address you receive this reponse from". This lets us use the host OS to solve the problem of multiple host addresses (possibly with no routing between them); the host will use the right address when we reply to the inbound connection request. The long from is a full address and port in a string. It is used for returning the address of a server that is not running locally.