#!/opt/perl/bin/perl use strict; use AnyEvent; BEGIN { require AnyEvent::Impl::Perl unless $ENV{PERL_ANYEVENT_MODEL} } use AnyEvent::Socket; use AnyEvent::Handle; unless ($ENV{PERL_ANYEVENT_NET_TESTS}) { print "1..0 # Skip PERL_ANYEVENT_NET_TESTS environment variable not set\n"; exit 0; } print "1..2\n"; my $cv = AnyEvent->condvar; my $rbytes; my $hdl; $hdl = AnyEvent::Handle->new ( connect => ['www.google.com', 80], on_error => sub { warn "handle error: $_[2]"; $cv->broadcast; }, on_eof => sub { my ($hdl) = @_; if ($rbytes !~ /<\/html>/i) { print "not "; } print "ok 2 - received HTML page\n"; $cv->broadcast; } ); $hdl->push_read (chunk => 10, sub { my ($hdl, $data) = @_; unless (substr ($data, 0, 4) eq 'HTTP') { print "not "; } print "ok 1 - received 'HTTP'\n"; $hdl->on_read (sub { my ($hdl) = @_; $rbytes .= $hdl->rbuf; $hdl->rbuf = ''; return 1; }); }); $hdl->push_write ("GET http://www.google.com/ HTTP/1.0\015\012\015\012"); $cv->wait;