# 11.8 `gopherlib` -- Gopher protocol client

This module provides a minimal implementation of client side of the Gopher protocol. It is used by the module `urllib` to handle URLs that use the Gopher protocol.

The module defines the following functions:

`send_selector`( | selector, host[, port])

  Send a selector string to the gopher server at host and port (default `70`). Returns an open file object from which the returned document can be read.

`send_query`( | selector, query, host[, port])

  Send a selector string and a query string to a gopher server at host and port (default `70`). Returns an open file object from which the returned document can be read.

Note that the data returned by the Gopher server can be of any type, depending on the first character of the selector string. If the data is text (first character of the selector is "`0`"), lines are terminated by CRLF, and the data is terminated by a line consisting of a single "`.`", and a leading "`.`" should be stripped from lines that begin with "`..`". Directory listings (first character of the selector is "`1`") are transferred using the same protocol.