ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/eg/ae2.pl
Revision: 1.2
Committed: Thu Aug 6 14:00:36 2009 UTC (14 years, 11 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: rel-5_28, rel-5_29, rel-7_0, rel-5_21, rel-6_0, rel-6_1, rel-5_24, rel-5_26, rel-5_27, rel-5_12, rel-5_1, rel-5_0, rel-5_3, rel-5_2, rel-6_14, rel-5_22, rel-6_11, rel-6_12, rel-6_13, rel-5_261, rel-7_04, rel-7_05, rel-7_07, rel-7_01, rel-7_02, rel-7_03, rel-5_201, rel-5_202, rel-7_08, rel-7_09, rel-5_11, rel-5_23, rel-5_31, rel-5_01, rel-6_02, rel-6_01, rel-5_111, rel-5_112, rel-5_271, rel-7_16, rel-7_15, rel-7_14, rel-7_13, rel-7_12, rel-7_11, rel-5_251, HEAD
Changes since 1.1: +2 -2 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.2 # $Id: ae2.pl,v 1.1 2009-06-23 12:21:34 root Exp $
2 root 1.1 # An echo client-server benchmark.
3    
4     use warnings;
5     use strict;
6    
7     use Time::HiRes qw(time);
8     use AnyEvent;
9     use AnyEvent::Impl::Perl;
10     use AnyEvent::Socket;
11    
12     my $CYCLES = 500;
13     my $port = 11212;
14    
15     tcp_server undef, $port, sub {
16     my ($fh) = @_
17     or die "tcp_server: $!";
18    
19     my $hdl = new AnyEvent::Handle fh => $fh;
20    
21     $hdl->push_read (line => sub {
22     $hdl->push_write ("$_[1]\n");
23     undef $hdl;
24     });
25     };
26    
27     my $t = time;
28    
29     for my $connections (1..$CYCLES) {
30 root 1.2 my $cv = AE::cv;
31 root 1.1
32     tcp_connect "127.0.0.1", $port, sub {
33     my ($fh) = @_
34     or die "tcp_connect: $!";
35    
36     my $hdl = new AnyEvent::Handle fh => $fh;
37    
38     $hdl->push_write ("can write $connections\n");
39     $hdl->push_read (line => sub {
40     undef $hdl;
41     $cv->send;
42     });
43     };
44    
45     $cv->recv;
46     };
47    
48     $t = time - $t;
49     printf "%.3f sec\n", $t;
50     exit;