#!/opt/bin/perl use common::sense; use AnyEvent::MP; use AnyEvent::MP::Global; my ($nick, $servernode) = @ARGV; initialise_node "slave/", $servernode; $| = 1; my $port = port; my ($client, $server); sub server_connect { my $servernodes = AnyEvent::MP::Global::find "eg_chat_server" or return after 1, \&server_connect; print "\rconnecting...\n"; $client = port { print "\r \r@_\n> " }; mon $client, sub { print "\rdisconnected @_\n"; &server_connect; }; $server = spawn $servernodes->[0], "::client_connect", $client, $nick; mon $server, $client; } server_connect; my $w = AE::io 0, 0, sub { chomp (my $line = ); print "> "; snd $server, $line; }; print "> "; AE::cv->recv;