Difference between revisions of "Perl POE"
From Teknologisk videncenter
m |
m (→Links) |
||
| Line 1: | Line 1: | ||
==POE - portable multitasking and networking framework for Perl== | ==POE - portable multitasking and networking framework for Perl== | ||
| + | == A simple multitasking TCP Server | ||
| + | <source lang="perl"> | ||
| + | #!/usr/bin/perl | ||
| + | |||
| + | use warnings; | ||
| + | use strict; | ||
| + | use POE qw(Component::Server::TCP); | ||
| + | |||
| + | POE::Component::Server::TCP->new( | ||
| + | Port => 12345, | ||
| + | ClientConnected => sub { | ||
| + | print "got a connection from $_[HEAP]{remote_ip}\n"; | ||
| + | $_[HEAP]{client}->put("Smile from the server."); | ||
| + | }, | ||
| + | ClientInput => sub { | ||
| + | my $client_input = $_[ARG0]; | ||
| + | $client_input =~ tr[a-zA-Z][A-Za-z]; | ||
| + | $_[HEAP]{client}->put($client_input); | ||
| + | }, | ||
| + | ClientDisconnected => sub { | ||
| + | print "client from $_[HEAP]{remote_ip} disconnected\n"; | ||
| + | }, | ||
| + | ); | ||
| + | |||
| + | POE::Kernel->run; | ||
| + | exit; | ||
| + | </source> | ||
==Links== | ==Links== | ||
[http://search.cpan.org/~rcaputo/POE-1.003/lib/POE.pm CPAN POE] | [http://search.cpan.org/~rcaputo/POE-1.003/lib/POE.pm CPAN POE] | ||
[[Category:Perl]] | [[Category:Perl]] | ||
Revision as of 17:38, 15 March 2009
POE - portable multitasking and networking framework for Perl
== A simple multitasking TCP Server
#!/usr/bin/perl
use warnings;
use strict;
use POE qw(Component::Server::TCP);
POE::Component::Server::TCP->new(
Port => 12345,
ClientConnected => sub {
print "got a connection from $_[HEAP]{remote_ip}\n";
$_[HEAP]{client}->put("Smile from the server.");
},
ClientInput => sub {
my $client_input = $_[ARG0];
$client_input =~ tr[a-zA-Z][A-Za-z];
$_[HEAP]{client}->put($client_input);
},
ClientDisconnected => sub {
print "client from $_[HEAP]{remote_ip} disconnected\n";
},
);
POE::Kernel->run;
exit;