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

FreeBSD Manual Pages

  
 
  

home | help
Net::TCP::Server(3)   User Contributed Perl Documentation  Net::TCP::Server(3)

NAME
       Net::TCP::Server	- TCP sockets interface	module for listeners and
       servers

SYNOPSIS
	   use Net::Gen;	       # optional
	   use Net::Inet;	       # optional
	   use Net::TCP;	       # optional
	   use Net::TCP::Server;

DESCRIPTION
       The "Net::TCP::Server" module provides services for TCP communications
       over sockets.  It is layered atop the "Net::TCP", "Net::Inet", and
       "Net::Gen" modules, which are part of the same distribution.

   Public Methods
       The following methods are provided by the "Net::TCP::Server" module
       itself, rather than just	being inherited	from "Net::TCP", "Net::Inet",
       or "Net::Gen".

       new Usage:

	       $obj = new Net::TCP::Server;
	       $obj = new Net::TCP::Server $service;
	       $obj = new Net::TCP::Server $service, \%parameters;
	       $obj = new Net::TCP::Server $lcladdr, $service, \%parameters;
	       $obj = 'Net::TCP::Server'->new();
	       $obj = 'Net::TCP::Server'->new($service);
	       $obj = 'Net::TCP::Server'->new($service,	\%parameters);
	       $obj = 'Net::TCP::Server'->new($lcladdr,	$service, \%parameters);

	   Returns a newly-initialised object of the given class.  This	is
	   much	like the regular "new" method of the other modules in this
	   distribution, except	that it	makes it easier	to specify just	a
	   service name	or port	number,	and it automatically does a
	   setsockopt()	call to	set "SO_REUSEADDR" to make the bind() more
	   likely to succeed.  The "SO_REUSEADDR" is really done in a base
	   class, but it's enabled by defaulting the "reuseaddr" object
	   parameter to	1 in this constructor.

	   The examples	above show the indirect	object syntax which many
	   prefer, as well as the guaranteed-to-be-safe	static method call.
	   There are occasional	problems with the indirect object syntax,
	   which tend to be rather obscure when	encountered.  See
	   http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/1998-01/msg01674.html
	   for details.

	   Simple example for server setup:

	       $lh = 'Net::TCP::Server'->new(7788) or die;
	       while ($sh = $lh->accept) {
		   defined($pid=fork) or die "fork: $!\n";
		   if ($pid) {		   # parent doesn't need client	fh
		       $sh->stopio;
		       next;
		   }
		   # child doesn't need	listener fh
		   $lh->stopio;
		   # do	per-connection stuff here
		   exit;
	       }

	   Note	that signal-handling for the child processes is	not included
	   in this example.  See "Internet TCP Clients and Servers" in perlipc
	   for related examples	which manage subprocesses.  However, on	many
	   operating systems, a	simple "$SIG{CHLD} = 'IGNORE';"	will prevent
	   the server process from collecting `zombie' subprocesses.

   Protected Methods
       none.

   Known Socket	Options
       There are no socket options specific to the "Net::TCP::Server" module.

   Known Object	Parameters
       There are no object parameters registered by the	"Net::TCP::Server"
       module itself.

   Exports
       default
	   none

       exportable
	   none

       tags
	   none

THREADING STATUS
       This module has been tested with	threaded perls,	and should be as
       thread-safe as perl itself.  (As	of 5.005_03 and	5.005_57, that's not
       all that	safe just yet.)	 It also works with interpreter-based threads
       ('ithreads') in more recent perl	releases.

SEE ALSO
       Net::TCP(3), Net::Inet(3), Net::Gen(3)

AUTHOR
       Spider Boardman <spidb@cpan.org>

perl v5.32.1			  2021-03-01		   Net::TCP::Server(3)

NAME | SYNOPSIS | DESCRIPTION | THREADING STATUS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::TCP::Server&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help