+
+ <para>
+ A <replaceable>listener-address</replaceable> consists of an optional
+ transport mode followed by a colon (:) followed by a listener address.
+ The transport mode is either a file system socket
+ <literal>unix</literal>,
+ a SSL TCP/IP socket <literal>ssl</literal>, or a plain TCP/IP socket
+ <literal>tcp</literal> (default).
+ </para>
+
+ <para>
+ For TCP, an address has the form
+ <screen>
+ hostname | IP-number [: portnumber]
+ </screen>
+ The port number defaults to 210 (standard &acro.z3950; port) for
+ privileged users (root), and 9999 for normal users.
+ The special hostname "@" is mapped to
+ the address INADDR_ANY, which causes the server to listen on any local
+ interface. </para>
+
+ <para>
+ The default behavior for <literal>zebrasrv</literal> - if started
+ as non-privileged user - is to establish
+ a single TCP/IP listener, for the &acro.z3950; protocol, on port 9999.
+ <screen>
+ zebrasrv @
+ zebrasrv tcp:some.server.name.org:1234
+ zebrasrv ssl:@:3000
+ </screen>
+ </para>
+
+ <para>
+ To start the server listening on the registered port for
+ &acro.z3950;, or on a filesystem socket,
+ and to drop root privileges once the ports are bound, execute
+ the server like this from a root shell:
+ <screen>
+ zebrasrv -u daemon @
+ zebrasrv -u daemon tcp:@:210
+ zebrasrv -u daemon unix:/some/file/system/socket
+ </screen>
+ Here <literal>daemon</literal> is an existing user account, and the
+ unix socket <literal>/some/file/system/socket</literal> is readable
+ and writable for the <literal>daemon</literal> account.
+ </para>
+<!--
+The line before the examples "zebrasrv -u daemon @" would sound better
+if it said something like "execute the server from a root shell with a
+command like one of these:" - so that our users won't cut and paste all
+three lines...
+Heikki -->
+
+