Useful excerpt from Gopher+ specification
==========================================
Data transfer - Basic
~~~~~~~~~~~~~~~~~~~~~~
Request:
selector [TAB] "+" [CRLF]
Successful response (static response size):
[+] response_size [CRLF] response_body
Successful response (dot mode):
[+] "-1" [CRLF] response_body [CRLF] . [CRLF]
Successful response (plain)
[+] "-2" [CRLF] response_body
Error response
[-] error_code [CRLF] error_data [CRLF] "." [CRLF]
Error codes:
-1 - Not available
-2 - Server busy
-3 - Moved/Redirect (data contains new location)
Data transfer - Advanced
~~~~~~~~~~~~~~~~~~~~~~~~~
Request specific representation
selector [TAB] "+" representation [CRLF]
selector [TAB] "+" representation [TAB] "0" [CRLF]
Request with data sent
selector [TAB] "+" representation [TAB] "1" [CRLF] data_block
Datablock format (same as response)
[+] data_size [CRLF] data_body
[+] "-1" [CRLF] data_body [CRLF] . [CRLF]
[+] "-2" [CRLF] data_body