Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
tcpserver(1)		    General Commands Manual		  tcpserver(1)

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	 vari-
       ables.

       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 ad-
       dress; or a dotted-decimal IP address,  allowing	 connections  only  to
       that  address; or a host	name, allowing connections to the first	IP ad-
       dress 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 inte-
	      ger. Default: 40.

       -x cdb Follow the rules compiled	into cdb by tcprules(1).  These	 rules
	      may  specify  setting environment	variables or rejecting connec-
	      tions 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. Nor-
	      mally 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  en-
	      vuidgid(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 rout-
	      ing 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 re-
	      mote host	is responding slowly. This is currently	 the  default,
	      but  it may not be in the	future;	if you want it,	set it explic-
	      itly.

       -D     Never delay sending data;	enable TCP_NODELAY.

       Data-gathering options:

       -h     (Default.) Look up the remote host name in DNS to	set the	 envi-
	      ronment variable $TCPREMOTEHOST.

       -H     Do  not look up the remote host name in DNS; remove the environ-
	      ment 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 envi-
	      ronment  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	local-
	      name 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  sec-
	      onds. 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

								  tcpserver(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=tcpserver&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help