All of the things I like to share
GameSpy query protocol version 1 has three packets for querying the players, server info and server rules.
5C 69 6E 66 6F 5C \info\5C 72 75 6C 65 73 5C \rules\5C 70 6C 61 79 65 72 73 5C \players\
According to Luigi Ariemma there are two hidden queries \ison\ and \ucount\ available for some games. More information available at http://aluigi.altervista.org/papers/gshlist.txt.
Responses to the queries are \ (0x5C) delimited key value pairs. The response might be sent back into multiple packets. Each packet is delimited by \querid\x.y\, where x is a unique integer value for the query and y the sequence number of the packet. The final packet end with \final\. Packet may be received out of order. The sequence number helps restore the correct order.
For example, a response to a players query consists of 3 packets. The first two packets end in \querid\15.1\ and \queryid\15.2\ and the last packet \queryid\15.3\final\.