use 5.012;
use warnings;
use UniEvent;
my $tcp = UniEvent::Tcp->new;
$tcp->connect('yandex.ru', 80, sub {
my ($tcp, $error_code) = @_;
# will be thrown out of loop run
die("cannot connect: $error_code\n") if $error_code;
$tcp->loop->stop;
});
$tcp->loop->run;
say "connected";
$tcp->read_callback(sub {
my ($tcp, $data, $error_code) = @_;
die("reading data error: $error_code\n") if $error_code;
say "[<<] ", $data;
$tcp->loop->stop;
});
$tcp->eof_callback(sub {
say "[eof]";
$tcp->loop->stop;
});
my $req =<<END;
GET / HTTP/1.1\r
host: ya.ru\r
\r
END
$tcp->write($req, sub {
my ($client, $error_code) = @_;
die("writing data error: $error_code\n") if $error_code;
say "[>>] (simple get)";
});
$tcp->loop->run;