Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- server:
- use strict;
- use warnings;
- sub POE::Kernel::ASSERT_DEFAULT () { 1 }
- sub POE::Kernel::TRACE_DEFAULT () { 1 }
- use Glib;
- use POE qw/Loop::Glib/;
- #use POE::Kernel { loop => 'Glib' };
- use POE::Filter::Reference;
- use POE::Component::Server::TCP;
- sub start_listen_server {
- POE::Component::Server::TCP->new
- (
- Alias => "sum_server",
- Address => "localhost",
- Port => 12345,
- Started => sub {
- Irssi::print("Started");
- $_[SESSION]->option(trace => 1);
- },
- ClientConnected => sub {
- Irssi::print("Client Connected");
- },
- ClientInput => sub {
- my ($heap, $data) = @_[HEAP, ARG0];
- Irssi::print("Received input: $data");
- $heap->{client}->put("Poing!");
- $_[KERNEL]->yield('shutdown');
- },
- ClientDisconnected => sub {
- my $kernel = $_[KERNEL];
- Irssi::print("Client disconnected");
- },
- );
- }
- start_listen_server();
- print "Using loop: " . $poe_kernel->poe_kernel_loop() . "\n";
- $poe_kernel->run();
- package Irssi;
- sub print {
- print @_, $/;
- }
- 1;
- ------------client----------------------------
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use POE qw(
- Component::Client::TCP;
- );
- POE::Component::Client::TCP->new(
- RemoteAddress => "localhost",
- RemotePort => 12345,
- Connected => sub {
- print "Connected\n";
- my $heap = $_[HEAP];
- $heap->{server}->put("Hello");
- },
- ServerInput => sub {
- my ($kernel, $hash) = @_[KERNEL, ARG0];
- print "Client received:\n";
- $kernel->yield("shutdown");
- },
- Disconnected => sub {
- print "Disconnected\n";
- },
- );
- $poe_kernel->run();
Add Comment
Please, Sign In to add comment