ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/t/handle/04_listen.t
(Generate patch)

Comparing AnyEvent/t/handle/04_listen.t (file contents):
Revision 1.1 by elmex, Sun Apr 27 16:56:18 2008 UTC vs.
Revision 1.6 by elmex, Fri May 2 09:15:34 2008 UTC

1#!/opt/perl/bin/perl 1#!/opt/perl/bin/perl
2
2use strict; 3use strict;
3use Test::More tests => 2; 4use Test::More tests => 2;
5use AnyEvent::Impl::Perl;
4use AnyEvent; 6use AnyEvent;
5use AnyEvent::Socket; 7use AnyEvent::Socket;
6 8
7my $lbytes; 9my $lbytes;
8my $rbytes; 10my $rbytes;
10my $cv = AnyEvent->condvar; 12my $cv = AnyEvent->condvar;
11 13
12my $lsock = 14my $lsock =
13 AnyEvent::Socket->new ( 15 AnyEvent::Socket->new (
14 Listen => 1, 16 Listen => 1,
15 LocalPort => 32391,
16 ReuseAddr => 1, 17 ReuseAddr => 1,
17 ); 18 );
19
20$lsock->on_accept (sub {
21 my ($lsock, $cl, $paddr) = @_;
22
23 unless (defined $cl) {
24 diag "accept failed: $!";
25 return;
26 }
27
28 $cl->read (6, sub {
29 my ($cl, $data) = @_;
30 $lbytes = $data;
31 $cl->write ("BLABLABLA\015\012");
32 });
33});
34
18my $ae_sock = 35my $ae_sock =
19 AnyEvent::Socket->new ( 36 AnyEvent::Socket->new (
20 PeerAddr => "localhost:32391", 37 PeerAddr => "127.0.0.1:" . $lsock->fh->sockport,
21 on_connect => sub { 38 on_connect => sub {
22 my ($ae_sock, $error) = @_; 39 my ($ae_sock, $error) = @_;
23 if ($error) { diag "connection failed: $!"; $cv->broadcast; return } 40 if ($error) { diag "connection failed: $!"; $cv->broadcast; return }
24 41
25 print "connected to ".$ae_sock->fh->peerhost.":".$ae_sock->fh->peerport."\n"; 42 print "connected to ".$ae_sock->fh->peerhost.":".$ae_sock->fh->peerport."\n";
33 } 50 }
34 ); 51 );
35 52
36$ae_sock->on_eof (sub { $cv->broadcast }); 53$ae_sock->on_eof (sub { $cv->broadcast });
37 54
38$lsock->on_accept (sub {
39 my ($lsock, $cl, $paddr) = @_;
40
41 unless (defined $cl) {
42 diag "accept failed: $!";
43 return;
44 }
45
46 $cl->read (6, sub {
47 my ($cl, $data) = @_;
48 $lbytes = $data;
49 $cl->write ("BLABLABLA\015\012");
50 });
51});
52
53$cv->wait; 55$cv->wait;
54 56
55is ($lbytes, "TEST\015\012", 'listening end received data'); 57is ($lbytes, "TEST\015\012", 'listening end received data');
56is ($rbytes, "BLABLABLA\015\012", 'connecting received response'); 58is ($rbytes, "BLABLABLA\015\012", 'connecting received response');
59

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines