home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _4974d574db832337c3ec6a799cfb3452 < prev    next >
Text File  |  2000-03-23  |  5KB  |  134 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>POE::Wheel::ListenAccept - POE Listen/Accept Logic Abstraction</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> POE::Wheel::ListenAccept - POE Listen/Accept Logic Abstraction</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#public methods">PUBLIC METHODS</A></LI>
  26.     <LI><A HREF="#events and parameters">EVENTS AND PARAMETERS</A></LI>
  27.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  28.     <LI><A HREF="#bugs">BUGS</A></LI>
  29.     <LI><A HREF="#authors & copyrights">AUTHORS & COPYRIGHTS</A></LI>
  30. </UL>
  31. <!-- INDEX END -->
  32.  
  33. <HR>
  34. <P>
  35. <H1><A NAME="name">NAME</A></H1>
  36. <P>POE::Wheel::ListenAccept - POE Listen/Accept Logic Abstraction</P>
  37. <P>
  38. <HR>
  39. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  40. <UL>
  41. <LI>Linux</LI>
  42. <LI>Solaris</LI>
  43. <LI>Windows</LI>
  44. </UL>
  45. <HR>
  46. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  47. <PRE>
  48.   $wheel = new POE::Wheel::ListenAccept(
  49.     Handle      => $socket_handle,      # Listening socket
  50.     AcceptState => $accept_state_name,  # Success state
  51.     ErrorState  => $error_state_name,   # Failure state
  52.   );</PRE>
  53. <PRE>
  54.   $wheel->event( AcceptState => $new_state_name ); # Add/change state
  55.   $wheel->event( ErrorState  => undef );           # Remove state</PRE>
  56. <P>
  57. <HR>
  58. <H1><A NAME="description">DESCRIPTION</A></H1>
  59. <P>ListenAccept waits for activity on a listening socket and accepts
  60. remote connections as they arrive.  It generates events for successful
  61. and failed connections (EAGAIN is not considered to be a failure).</P>
  62. <P>This wheel neither needs nor includes a <CODE>put()</CODE> method.</P>
  63. <P>ListenAccept is a good way to listen on sockets from other sources,
  64. such as IO::Socket or plain <A HREF="../../../../lib/Pod/perlfunc.html#item_socket"><CODE>socket()</CODE></A> calls.</P>
  65. <P>
  66. <HR>
  67. <H1><A NAME="public methods">PUBLIC METHODS</A></H1>
  68. <P>POE::Wheel::ListenAccept::event( ... )</P>
  69. <P>The <CODE>event()</CODE> method changes the events that a ListenAccept wheel emits
  70. for different conditions.  It accepts a list of event types and
  71. values.  Defined state names change the previous values.  Undefined
  72. ones turn off the given condition's events.</P>
  73. <P>For example, this <CODE>event()</CODE> call changes a wheel's AcceptState event and
  74. turns off its ErrorState event.</P>
  75. <PRE>
  76.   $wheel->event( AcceptState => $new_accept_state_name,
  77.                  ErrorState  => undef
  78.                );</PRE>
  79. <P>
  80. <HR>
  81. <H1><A NAME="events and parameters">EVENTS AND PARAMETERS</A></H1>
  82. <UL>
  83. <LI>
  84. AcceptState
  85. <P>The AcceptState event contains the name of the state that will be
  86. called when a new connection has been accepted.</P>
  87. <P>The ARG0 parameter contains the accepted connection's new socket
  88. handle.</P>
  89. <P>A sample AcceptState state:</P>
  90. <PRE>
  91.   sub accept_state {
  92.     my $accepted_handle = $_[ARG0];
  93.     # Optional security things with getpeername might go here.
  94.     &create_server_session($handle);
  95.   }</PRE>
  96. <P></P>
  97. <LI>
  98. ErrorState
  99. <P>The ErrorState event contains the name of the state that will be
  100. called when a socket error occurs.  The ListenAccept wheel knows what
  101. to do with EAGAIN, so it's not considered an error worth reporting.</P>
  102. <P>The ARG0 parameter contains the name of the function that failed.
  103. This usually is 'accept'.  ARG1 and ARG2 contain the numeric and
  104. string versions of $! at the time of the error, respectively.</P>
  105. <P>A sample ErrorState state:</P>
  106. <PRE>
  107.   sub error_state {
  108.     my ($operation, $errnum, $errstr) = @_[ARG0, ARG1, ARG2];
  109.     warn "$operation error $errnum: $errstr\n";
  110.   }</PRE>
  111. <P></P></UL>
  112. <P>
  113. <HR>
  114. <H1><A NAME="see also">SEE ALSO</A></H1>
  115. <P>POE::Wheel; POE::Wheel::FollowTail; POE::Wheel::ReadWrite;
  116. POE::Wheel::SocketFactory</P>
  117. <P>
  118. <HR>
  119. <H1><A NAME="bugs">BUGS</A></H1>
  120. <P>Oh, probably some.</P>
  121. <P>
  122. <HR>
  123. <H1><A NAME="authors & copyrights">AUTHORS & COPYRIGHTS</A></H1>
  124. <P>Please see the POE manpage.</P>
  125. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  126. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  127. <STRONG><P CLASS=block> POE::Wheel::ListenAccept - POE Listen/Accept Logic Abstraction</P></STRONG>
  128. </TD></TR>
  129. </TABLE>
  130.  
  131. </BODY>
  132.  
  133. </HTML>
  134.