Initial version
[spider.git] / perl / msgdemo.pl
diff --git a/perl/msgdemo.pl b/perl/msgdemo.pl
new file mode 100644 (file)
index 0000000..9ea4056
--- /dev/null
@@ -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();
+   }
+}
+