Provided by: ucspi-tcp-ipv6_0.88-3_amd64 bug


       tcpserver - accept incoming TCP connections


       tcpserver  [  -146jpPhHrRoOdDqQv  ]  [  -climit ] [ -xrules.cdb ] [ -Bbanner ] [ -ggid ] [
       -uuid ] [ -bbacklog ] [ -llocalname ] [ -ttimeout ] [ -Iinterface ] host  port  program  [
       arg ...  ]


       tcpserver  waits  for  connections from TCP clients.  For each connection, it runs program
       with the given arguments, with descriptor 0 reading from  the  network  and  descriptor  1
       writing to the network.

       The  server's address is given by host and port.  host can be 0, allowing connections from
       any host; or a particular IP address, allowing connections only to that address; or a host
       name,  allowing  connections to the first IP address for that host.  port may be a numeric
       port number or a port name.  If port is 0, tcpserver will choose a free port.

       tcpserver sets up several environment variables, as described in tcp-environ(5).

       tcpserver exits when it receives SIGTERM.


              Do not handle more  than  limit  simultaneous  connections.   If  there  are  limit
              simultaneous  copies of program running, defer acceptance of a new connection until
              one copy finishes.  limit must be a positive integer.  Default: 40.

              Follow the rules compiled into rules.cdb by  tcprules.   These  rules  may  specify
              setting environment variables or rejecting connections from bad sources.

              tcpserver  does  not  read  rules.cdb into memory; you can rerun tcprules to change
              tcpserver's behavior on the fly.

              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 rules.cdb.

              This feature can be used to reduce latency in protocols where the client waits  for
              a greeting from the server.

       -ggid  Switch  group  ID  to  gid  after  preparing to receive connections.  gid must be a
              positive integer.

       -uuid  Switch user ID to uid after preparing  to  receive  connections.   uid  must  be  a
              positive integer.

       -1     After  preparing  to  receive  connections, print the local port number to standard

       -4     Fall back to IPv4 sockets.  This is necessary for terminally  broken  systems  like
              OpenBSD  which  will  not  let  IPv6  sockets  connect to V4-mapped IPv6 addresses.
              Please note that this also applies to DNS lookups, so you will have to use  an  DNS
              resolver  with  an  IPv6 address to accept IPv6 connections.  Use DNSCACHEIP to set
              the DNS resolver IP dynamically.

       -6     Force IPv6 mode in UCSPI environment variables, even for  IPv4  connections.   This
              will  set  $PROTO  to  TCP6  and  put  IPv4-mapped IPv6 addresses in TCPLOCALIP and

              Bind to the network interface interface ("eth0" on Linux, for  example).   This  is
              only defined and needed for IPv6 link-local addresses.

              Allow  up  to  backlog  simultaneous SYN_RECEIVEDs.  Default: 20.  On some systems,
              backlog is silently limited to 5.  See listen(2) for more details.

       -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     (Default.)  Delay sending data for a fraction of a second whenever the remote  host
              is responding slowly, to make better use of the network.

       -D     Never  delay sending data; enable TCP_NODELAY.  This is appropriate for interactive

       -q     Quiet.  Do not print any messages.

       -Q     (Default.)  Print error messages.

       -v     Verbose.  Print all available messages.


       -p     Paranoid.  After looking up the remote host name, look up the IP addresses for that
              name,  and  make  sure  one of them matches TCPREMOTEIP.  If none of them do, unset

       -P     (Default.)  Not paranoid.

       -h     (Default.)  Look up the remote host name and set TCPREMOTEHOST.

       -H     Do not look up the remote host name.

              Do not look up the local host name; use localname for TCPLOCALHOST.

       -r     (Default.)  Attempt to obtain TCPREMOTEINFO from the remote host.

       -R     Do not attempt to obtain TCPREMOTEINFO from the remote host.

              Give up on the TCPREMOTEINFO connection attempt after timeout seconds. Default: 26.


       argv0(1), fixcr(1), recordio(1), tcpclient(1), tcprules(1), listen(2), tcp-environ(5)