まだAnyEventのあたりの使い方とか挙動とかを把握しきれていない。
ちょっと練習にAnyEvent::SocketとAnyEvent::Handleで超シンプルなechoサーバを書いてみた
#!/usr/bin/perl use strict; use warnings; use AnyEvent::Socket; use AnyEvent::Handle; my $cv = AE::cv; tcp_server undef, 1982, sub { my $hdl; $hdl = AnyEvent::Handle->new( fh => shift, on_read => sub { $hdl->push_write(delete $hdl->{rbuf}); }, on_eof => sub {}, ); }; $cv->recv;
これを動かしておいて、外から繋ぐとechoサーバとして動いてくれる。はず。
$ telnet 127.0.0.1 1982 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. hoge hoge fuga fuga Hello world! Hello world! ^]
こんなカンジでいいのかな… AnyEvent::Handleのread/writeの仕組みは分かってくると面白そう!