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

FreeBSD Manual Pages

  
 
  

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

NAME
       POE::Component::IKC::Server - POE Inter-kernel Communication server

SYNOPSIS
	   use POE;
	   use POE::Component::IKC::Server;
	   POE::Component::IKC::Server->spawn(
	       ip=>$ip,
	       port=>$port,
	       name=>'Server');
	   ...
	   $poe_kernel->run();

DESCRIPTION
       This module implements a	POE IKC	server.	 A IKC server listens for
       incoming	connections from IKC clients.  When a client connects, it
       negociates certain connection parameters.  After	this, the POE server
       and client are pretty much identical.

EXPORTED FUNCTIONS
   "create_ikc_server"
       Deprecated.  Use	"spawn"	in POE::Component::IKC::Server.

CLASS METHODS
   "spawn"
       This methods initiates all the work of building the IKC server.
       Parameters are :

       "ip"
	   Address to listen on.  Can be a doted-quad ('127.0.0.1') or a host
	   name	('foo.pied.nu').  Defaults to '0.0.0.0', aka INADDR_ANY.

       "port"
	   Port	to listen on.  Can be numeric (80) or a	service	('http').  If
	   undefined, will default to 603.  If you set the port	to 0, a	random
	   port	will be	chosen and "spawn" will	return the port	number.

	       my $port	= POE::Component::IKC::Server->spawn( port => 0	);
	       warn "Listeing on port $port";

       "unix"
	   Path	to the unix-socket to listen on.  Note:	this path is unlinked
	   before socket is attempted!	Buyer beware.

       "name"
	   Local kernel	name.  This is how we shall "advertise"	ourself	to
	   foreign kernels. It acts as a "kernel alias".  This parameter is
	   temporary, pending the addition of true kernel names	in the POE
	   core.  This name, and all aliases will be registered	with the
	   responder so	that you can post to them as if	they were remote.

       "aliases"
	   Arrayref of even more aliases for this kernel.  Fun Fun Fun!

       "verbose"
	   Print extra information to STDERR if	true.  This allows you to see
	   what	is going on and	potentially trace down problems	and stuff.

       "processes"
	   Activates the pre-forking server code.  If set to a positive	value,
	   IKC will fork processes-1 children.	IKC requests are only serviced
	   by the children.  Default is	1 (ie, no forking).

       "babysit"
	   Time, in seconds, between invocations of the	babysitter event.

       "connections"
	   Number of connections a child will accept before exiting.
	   Currently, connections are serviced concurrently, because there's
	   no way to know when we have finished	a request.  Defaults to	1 (ie,
	   one connection per child).

       "concurrency"
	   Number of simultaneous connected clients allowed.  Defaults to 0
	   (unlimited).

	   Note	that this is per-IKC::Server instance;	if you have several
	   ways	of connecting to a give	IKC server (for	example, both an
	   TCP/IP port and unix	pipe), they will not share the conncurrent
	   connection count.

       "protocol"
	   Which IKC negociation protocol to use.  The original	protocol
	   ("IKC") had a slow synchronous handshake.  The new protocol
	   ("IKC0") sends all the handshake information	at once.  IKC0 will
	   degrade gracefully to IKC, if the client and	server don't match.

	   Default is IKC0.

       "on_error"
	   Coderef that	is called for all errors. You could use	this to
	   monitor for problems	when forking children or opening the socket.
	   Parameters are "$operation, $errnum and $errstr", which correspond
	   to POE::Wheel::SocketFactory's FailureEvent,	which q.v.

	   However, IKC/monitor	provides a more	powerful mechanism for
	   detecting errors.  See POE::Component::IKC::Responder.

	   Note, also, that the	coderef	will be	executed from within an	IKC
	   session, NOT	within your own	session.  This means that things like
	   $poe_kernel->delay_set() won't do what you think they should.

       "POE::Component::IKC::Server::spawn" returns "undef()", unless you
       specify a "port"=0, in which case, "spawn" returns the port that	was
       chosen.

EVENTS
   shutdown
       This event causes the server to close it's socket, clean	up the shop
       and head	home. Normally it is only posted from IKC::Responder.

BUGS
       Preforking is something of a hack.  In particular, you must make	sure
       that your sessions will permit children exiting.	 This means, if	you
       have a delay()-loop, or event loop, children will not exit.  Once POE
       gets multicast events, I'll change this behaviour.

AUTHOR
       Philip Gwyn, <perl-ikc at pied.nu>

COPYRIGHT AND LICENSE
       Copyright 1999-2014 by Philip Gwyn.  All	rights reserved.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       See <http://www.perl.com/language/misc/Artistic.html>

SEE ALSO
       POE, POE::Component::IKC::Client

perl v5.32.0			  2014-07-07			IKC::Server(3)

NAME | SYNOPSIS | DESCRIPTION | EXPORTED FUNCTIONS | CLASS METHODS | EVENTS | BUGS | AUTHOR | COPYRIGHT AND LICENSE | SEE ALSO

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

home | help