Guest User

Untitled

a guest
Jul 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. server:
  2. use strict;
  3. use warnings;
  4. sub POE::Kernel::ASSERT_DEFAULT () { 1 }
  5. sub POE::Kernel::TRACE_DEFAULT () { 1 }
  6. use Glib;
  7. use POE qw/Loop::Glib/;
  8. #use POE::Kernel { loop => 'Glib' };
  9.  
  10. use POE::Filter::Reference;
  11. use POE::Component::Server::TCP;
  12.  
  13. sub start_listen_server {
  14. POE::Component::Server::TCP->new
  15. (
  16. Alias => "sum_server",
  17. Address => "localhost",
  18. Port => 12345,
  19. Started => sub {
  20. Irssi::print("Started");
  21. $_[SESSION]->option(trace => 1);
  22. },
  23. ClientConnected => sub {
  24. Irssi::print("Client Connected");
  25. },
  26. ClientInput => sub {
  27. my ($heap, $data) = @_[HEAP, ARG0];
  28. Irssi::print("Received input: $data");
  29. $heap->{client}->put("Poing!");
  30. $_[KERNEL]->yield('shutdown');
  31. },
  32.  
  33. ClientDisconnected => sub {
  34. my $kernel = $_[KERNEL];
  35. Irssi::print("Client disconnected");
  36. },
  37. );
  38. }
  39.  
  40. start_listen_server();
  41. print "Using loop: " . $poe_kernel->poe_kernel_loop() . "\n";
  42. $poe_kernel->run();
  43.  
  44. package Irssi;
  45. sub print {
  46. print @_, $/;
  47. }
  48.  
  49. 1;
  50.  
  51.  
  52. ------------client----------------------------
  53. #!/usr/bin/env perl
  54. use strict;
  55. use warnings;
  56.  
  57. use POE qw(
  58. Component::Client::TCP;
  59. );
  60.  
  61. POE::Component::Client::TCP->new(
  62. RemoteAddress => "localhost",
  63. RemotePort => 12345,
  64. Connected => sub {
  65. print "Connected\n";
  66. my $heap = $_[HEAP];
  67. $heap->{server}->put("Hello");
  68. },
  69.  
  70. ServerInput => sub {
  71. my ($kernel, $hash) = @_[KERNEL, ARG0];
  72. print "Client received:\n";
  73.  
  74. $kernel->yield("shutdown");
  75. },
  76.  
  77. Disconnected => sub {
  78. print "Disconnected\n";
  79. },
  80. );
  81.  
  82. $poe_kernel->run();
Add Comment
Please, Sign In to add comment