这是我的简单服务器。当我运行它并telnet到它(端口5222),并让telnet退出它的连接时,为什么我的on_eof函数没有被调用?即为什么不是字符串“突变体!!!”印?为什么不在这个AnyEvent :: Handle示例中调用on_eof?
#!/usr/bin/perl
use v5.18;
use warnings;
use EV;
use AnyEvent;
use AnyEvent::Socket;
use AnyEvent::Handle;
our $hdl;
my $server = tcp_server undef, 5222, sub {
my ($fh) = @_;
$hdl = AnyEvent::Handle->new(fh => $fh);
$hdl->on_eof(sub {
my ($handle) = @_;
say "CATASTROPHE!!!";
});
};
EV::run;
AnyEvent :: Intro上的http_get示例使用'on_eof'来捕获关闭连接。为什么我不应该这样做? – alexk
行为是固定的,当我添加一个空的on_read处理程序,就像这样:'$ hdl-> on_read(sub {say“READ !!!”})''。任何人都明白为什么? – alexk