tcpserver
Section: User Commands (1)
Page Index
NAME
tcpserver - accepts incoming TCP connections.
SYNOPSIS
tcpserver
[
opts
]
host
port
prog
DESCRIPTION
opts
is a series of getopt-style options.
host
is one argument.
port
is one argument.
prog
consists of one or more arguments.
tcpserver
waits for connections from TCP clients. For each connection, it runs
prog,
with descriptor 0 reading from the network and descriptor 1 writing to the
network. It also sets up several environment variables.
The server's address is given by
host
and
port.
port
may be a name from /etc/services or a number; if it is 0,
tcpserver
will choose a free TCP port.
host
may be 0, allowing connections to any local IP address; or a dotted-decimal IP
address, allowing connections only to that address; or a host name, allowing
connections to the first IP address for that host. Host names are fed through
qualification using dns_ip4_qualify.
tcpserver
exits when it receives SIGTERM.
OPTIONS
General options:
- -q
-
Quiet. Do not print error messages.
- -Q
-
(Default.) Print error messages.
- -v
-
Verbose. Print error messages and status messages.
Connection options:
- -c n
-
Do not handle more than
n
simultaneous connections. If there are
n
simultaneous copies of prog running, defer acceptance of a new connection
until one copy finishes.
n
must be a positive integer. Default: 40.
- -x cdb
-
Follow the rules compiled into
cdb
by
tcprules(1).
These rules may specify setting environment variables or rejecting connections
from bad sources. You can rerun
tcprules(1)
to change the rules while
tcpserver
is running.
- -X
-
With
-x cdb,
allow connections even if
cdb
does not exist. Normally
tcpserver
will drop the connection if
cdb
does not exist.
- -B banner
-
Write
banner
to the network immediately after each connection is made.
tcpserver
writes
banner
before looking up $TCPREMOTEHOST, before looking up $TCPREMOTEINFO, and before
checking
cdb.
This feature can be used to reduce latency in protocols where the client waits
for a greeting from the server.
- -g gid
-
Switch group ID to
gid
after preparing to receive connections.
gid
must be a positive integer.
- -u uid
-
Switch user ID to
uid
after preparing to receive connections.
uid
must be a positive integer.
- -U
-
Same as
-g
$GID
-u
$UID. Typically $GID and $UID are set by
envuidgid(8).
- -1
-
After preparing to receive connections, print the local port number to
standard output.
- -b n
-
Allow a backlog of approximately
n
TCP SYNs. On some systems,
n
is silently limited to 5. On systems supporting SYN cookies, the backlog is
irrelevant.
- -o
-
Leave IP options alone. If the client is sending packets along an IP source
route, send packets back along the same route.
- -O
-
(Default.) Kill IP options. A client can still use source routing to connect
and to send data, but packets will be sent back along the default route.
- -d
-
Delay sending data for a fraction of a second whenever the remote host is
responding slowly. This is currently the default, but it may not be in the
future; if you want it, set it explicitly.
- -D
-
Never delay sending data; enable TCP_NODELAY.
Data-gathering options:
- -h
-
(Default.) Look up the remote host name in DNS to set the environment variable
$TCPREMOTEHOST.
- -H
-
Do not look up the remote host name in DNS; remove the environment variable
$TCPREMOTEHOST. To avoid loops, you must use this option for servers on TCP
port 53.
- -p
-
Paranoid. After looking up the remote host name in DNS, look up the IP
addresses in DNS for that host name, and remove the environment variable
$TCPREMOTEHOST if none of the addresses match the client's IP address.
- -P
-
(Default.) Not paranoid.
- -l localname
-
Do not look up the local host name in DNS; use
localname
for the environment variable $TCPLOCALHOST. A common choice for
localname
is 0. To avoid loops, you must use this option for servers on TCP port 53.
- -r
-
(Default.) Attempt to obtain $TCPREMOTEINFO from the remote host.
- -R
-
Do not attempt to obtain $TCPREMOTEINFO from the remote host. To avoid loops,
you must use this option for servers on TCP ports 53 and 113.
- -t n
-
Give up on the $TCPREMOTEINFO connection attempt after
n
seconds. Default: 26.
SEE ALSO
tcprules(1),
tcprulescheck(1),
argv0(1),
fixcrio(1),
recordio(1),
rblsmtpd(1),
tcpclient(1),
who@(1),
date@(1),
finger@(1),
http@(1),
tcpcat(1),
mconnect(1),
tcp-environ(5)
http://cr.yp.to/ucspi-tcp.html