P Dobranski wrote:
POE::Kernel::yield is sort of a shortcut for 'post'.
You 'yield' an event in the current session.
It is the same as 'post'ing the event to the current session.
$kernel->yield('some_event_handler');
is roughly the same as
$kernel->post($my_session, 'some_event_handler');
(assuming both statements happen in the same session).
select_read/select_write allow you to get events when a file
descriptor becomes ready to read or write without you having to manage
your own select() loops.
On 2/22/07, Fei Liu <feiliu@xxxxxxxxxxxxxxx> wrote:
Hi group, just wondering what's the difference between
POE::Kernel::select_read/write method and POE::Kernel::yield method? How
should I use select_read/select_write? Do they do anything special about
the events that they select? Thanks,
Fei
Thanks for your reply. I was reading Rocco's tutorial
(http://poe.perl.org/?Evolution_of_a_POE_Server) on POE and my question
came up when he first introduced POE framework to replace the original
non-blocking tcp echo server. In the example no Wheel or
Component::Server::TCP were used, it was basic POE::Session.
POE::Session->create
( inline_states =>
{ _start => \&server_start,
event_accept => \&server_accept,
event_read => \&client_read,
event_write => \&client_write,
event_error => \&client_error,
}
);
sub server_start {
my $server = IO::Socket::INET->new
( LocalPort => 12345,
Listen => 10,
Reuse => "yes",
) or die "can't make server socket: $@\n";
$_[KERNEL]->select_read( $server, "event_accept" );
}
Here it seems select_read works sort of like yield, doesn't it? It
yields to event_accept handler? Quote 'The _start handler creates the
server socket and allocates its event generator with select_read()",
what's a event generator and what does it do?
Another thing confusing me here is that there seems to be a total of one
session in this echo server implementation, how can it handle mutliple
clients?
Sorry for so many questions, I can use POE just fine but I want to
understand what's going on under the hood.
Fei
|
Try Searching:
servers, voip, java, networking, microsoft ...
|
|
|
|