X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fmsgdemo.pl;fp=perl%2Fmsgdemo.pl;h=9ea40566b3254fb0cc26c56031796a65ef3b00fd;hb=2e16209416d1d189707935868a708b525c93097b;hp=0000000000000000000000000000000000000000;hpb=11143767eb1dec9bd3a351cc69836bf2f3fe1d9b;p=spider.git diff --git a/perl/msgdemo.pl b/perl/msgdemo.pl new file mode 100644 index 00000000..9ea40566 --- /dev/null +++ b/perl/msgdemo.pl @@ -0,0 +1,57 @@ + +# +# testmsg.pl - Used for testing the Msg.pm module +# Invoke as testmsg.pl {-client|-server} +# +use Msg; +use strict; + +my $i = 0; +sub rcvd_msg_from_server { + my ($conn, $msg, $err) = @_; + if (defined $msg) { + die "Strange... shouldn't really be coming here\n"; + } +} + +my $incoming_msg_count=0; + +sub rcvd_msg_from_client { + my ($conn, $msg, $err) = @_; + if (defined $msg) { + ++$i; + my $len = length ($msg); + print "$i ($len)\n"; + } +} + +sub login_proc { + # Unconditionally accept + \&rcvd_msg_from_client; +} + +my $host = 'localhost'; +my $port = 8080; +my $prog; +foreach $prog (@ARGV) { + if ($prog eq '-server') { + Msg->new_server($host, $port, \&login_proc); + print "Server created. Waiting for events"; + Msg->event_loop(); + } elsif ($prog eq '-client') { + my $conn = Msg->connect($host, $port, + \&rcvd_msg_from_server); + + die "Client could not connect to $host:$port\n" unless $conn; + print "Connection successful.\n"; + my $i; + my $msg = " " x 10000; + for ($i = 0; $i < 100; $i++) { + print "Sending msg $i\n"; + $conn->send_now($msg); + } + $conn->disconnect(); + Msg->event_loop(); + } +} +