当我运行以下代码时,执行只是挂在那里,根本没有响应。 你们中的任何人都可以告诉我示例代码有什么问题吗?
use strict;
use warnings;
use IO::Select;
use IO::Socket;
my $s = new IO::Socket (
LocalPort => 8889,
Proto => 'tcp',
Listen => 16,
Reuse => 1
);
die "could not create socket $!\n" unless $s;
答案 0 :(得分:5)
如果为IO :: Socket构造函数提供参数,则它需要一个Domain参数。查看完整的源here,特别是如果你提供了参数,那么从构造函数调用的configure子例程。
sub new {
...
return scalar(%arg) ? $sock->configure(\%arg)
: $sock;
}
sub configure {
my($sock,$arg) = @_;
my $domain = delete $arg->{Domain};
croak 'IO::Socket: Cannot configure a generic socket' unless defined $domain;
....
}
也许您正在考虑IO :: Socket :: INET?
答案 1 :(得分:1)
示例代码有什么问题?
IO::Socket
是Perl套接字的通用超类。
您需要将IO::Socket
替换为IO::Socket::INET
。