Turf Client Protocol

Turf has a built-in protocol which started with only the Connect Four section, and was then expanded to include arbitrary message passing, as well as several support commands. The commands are listed here.

\x1f is the Turf Client Protocol special character.  This character prefaces any
Turf Protocol message.  All Turf protocol messages end with a \r, not a \n\r
sequence.

"ClientConnect" is the first command which needs to be issued as soon as the
socket is writable, it tells Turf that the connecting client understands the
rest of the Turf Client Protocol.

c15 a<Client Name> should be issued when the user has logged in.  It registers
the user as having a client and registers the ClientName string as the client
in use. This command returns nothing.

c15 ba is the command to return a list of people who are willing to play
connect four.  It returns ba, which is the signal to pop up a listing window
for the players to be listed in.  Names follow, as bb<name>, which should be
inserted into the player listing.

c15 bb<name> challenges <name> to connect four.

c15 bc<name> accepts a challenge from <name>.  the bc sequence sent by Turf
indicates that the game is starting.

bd<name> from Turf is the indication that a challenge from <name> has arrived.

c15 bf<row> is sent to Turf telling Turf the user put a piece in row <row>. 
bf<xyc> from Turf means a piece should be placed at (x,y) and be color c.

bg<message> from Turf is a message to be shown to the client user concerning
the connect4 game.

bh<wxyz> from Turf means draw a line from spot (w,x) to (y,z) to show the
connected four resulting in end of game.

c15 c<name or name1,name2,etc or "all"> sends a raw message to the indicated
user(s).  Names can be string together with commas, and the keyword "all" can
be used to idicate all visible players.  Turf sends these messages as c<name>
<message> to the idicated user.

c15 d requests to know the name of the logged in user.  It returns d<name>.

c15 e requests to know the site information of your client.  It returns
e<site>.

c15 h<ID> <command string> executes <command string> and returns its output starting with h<ID> and ending with h.

c15 f<STRING> requests that c15 c messages starting with <STRING> be passed to
the user.*

c15 g<STRING> requests that c15 c messages starting with <STRING> not be passed
to the user.*

* This command is not yet implemented, and may or may not exist in the future.

Back to Turf's Homepage