\section{Standard Module \sectcode{gopherlib}}
\label{module-gopherlib}
\stmodindex{gopherlib}
\indexii{Gopher}{protocol}

\renewcommand{\indexsubitem}{(in module gopherlib)}

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

The module defines the following functions:

\begin{funcdesc}{send_selector}{selector, host\optional{, port}}
Send a \var{selector} string to the gopher server at \var{host} and
\var{port} (default \code{70}).  Returns an open file object from
which the returned document can be read.
\end{funcdesc}

\begin{funcdesc}{send_query}{selector, query, host\optional{, port}}
Send a \var{selector} string and a \var{query} string to a gopher
server at \var{host} and \var{port} (default \code{70}).  Returns an
open file object from which the returned document can be read.
\end{funcdesc}

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 \samp{0}), lines are
terminated by CRLF, and the data is terminated by a line consisting of
a single \samp{.}, and a leading \samp{.} should be stripped from
lines that begin with \samp{..}.  Directory listings (first character
of the selector is \samp{1}) are transferred using the same protocol.
