我正在编写一些服务器代码,通过STDIN与客户端进程通信.我正在尝试编写一段perl代码片段,异步接收来自客户端STDOUT的响应.代码的阻止版本可能如下所示:
sub _read_from_client { my ($file_handle) = @_; while (my $line = <$file_handle>) { print STDOUT $line; } return; }
重要的是,该代码段需要在Win32平台上运行.*nix平台有很多我不感兴趣的解决方案.我使用的是ActivePerl 5.10.
Perlmonks上的这个线程建议你可以用Perl这样在Windows上创建套接字非阻塞:
ioctl($socket, 0x8004667e, 1);
该主题中的更多细节和资源