Initial version
[spider.git] / perl / msgdemo.pl
1
2
3 # testmsg.pl - Used for testing the Msg.pm module
4 #    Invoke as testmsg.pl {-client|-server} 
5 #
6 use Msg;
7 use strict;
8
9 my $i = 0;
10 sub rcvd_msg_from_server {
11     my ($conn, $msg, $err) = @_;
12     if (defined $msg) {
13         die "Strange... shouldn't really be coming here\n";
14     }
15 }
16
17 my $incoming_msg_count=0;
18
19 sub rcvd_msg_from_client {
20     my ($conn, $msg, $err) = @_;
21     if (defined $msg) {
22         ++$i;
23         my $len = length ($msg);
24         print "$i ($len)\n";
25     }
26 }
27
28 sub login_proc {
29     # Unconditionally accept
30     \&rcvd_msg_from_client;
31 }
32
33 my $host = 'localhost';
34 my $port = 8080;
35 my $prog;
36 foreach $prog (@ARGV) {
37    if ($prog eq '-server') {
38        Msg->new_server($host, $port, \&login_proc);
39        print "Server created. Waiting for events";
40        Msg->event_loop();
41    } elsif ($prog eq '-client') {
42        my $conn = Msg->connect($host, $port,
43                                \&rcvd_msg_from_server);
44                                
45        die "Client could not connect to $host:$port\n" unless $conn;
46        print "Connection successful.\n";
47        my $i;
48        my $msg = " " x 10000;
49        for ($i = 0; $i < 100; $i++) {
50            print "Sending msg $i\n";
51            $conn->send_now($msg);
52        }
53        $conn->disconnect();
54        Msg->event_loop();
55    }
56 }
57