ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/04_listen.t
Revision: 1.12
Committed: Fri May 23 17:47:06 2008 UTC (16 years, 1 month ago) by root
Content type: application/x-troff
Branch: MAIN
Changes since 1.11: +3 -3 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/opt/perl/bin/perl
2
3 use strict;
4
5 use AnyEvent::Impl::Perl;
6 use AnyEvent::Handle;
7 use AnyEvent::Socket;
8 use AnyEvent;
9
10 my $lbytes;
11 my $rbytes;
12
13 print "1..2\n";
14
15 my $cv = AnyEvent->condvar;
16
17 my $hdl;
18 my $port;
19
20 my $w = tcp_server undef, undef,
21 sub {
22 my ($fh, $host, $port) = @_;
23
24 $hdl = AnyEvent::Handle->new (fh => $fh, on_eof => sub { $cv->broadcast });
25
26 $hdl->push_read_chunk (6, sub {
27 my ($hdl, $data) = @_;
28
29 if ($data eq "TEST\015\012") {
30 print "ok 1 - server received client data\n";
31 } else {
32 print "not ok 1 - server received bad client data\n";
33 }
34
35 $hdl->push_write ("BLABLABLA\015\012");
36 });
37 }, sub {
38 ($port) = Socket::unpack_sockaddr_in getsockname $_[0];
39
40 0
41 };
42
43
44 my $clhdl;
45 my $wc = tcp_connect localhost => $port, sub {
46 my ($fh) = @_
47 or die "connect: $!";
48
49 $clhdl = AnyEvent::Handle->new (fh => $fh, on_eof => sub { $cv->broadcast });
50
51 $clhdl->push_write ("TEST\015\012");
52 $clhdl->push_read_line (sub {
53 my ($clhdl, $line) = @_;
54
55 if ($line eq 'BLABLABLA') {
56 print "ok 2 - client received response\n";
57 } else {
58 print "not ok 2 - client received bad response\n";
59 }
60
61 $cv->broadcast;
62 });
63 };
64
65 $cv->wait;