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.