Provided by: libpoe-component-ikc-perl_0.2402-1_all bug

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.18.2                                       2014-07-07                                   IKC::Server(3pm)