Perl IO :: Socket :: INET混淆了“无效参数”错误
||
请考虑以下Perl脚本片段:
use IO::Socket;
# ...
my $sock = IO::Socket::INET->new(
PeerAddr => $host, # e.g. \"google.com\"
PeerPort => $port, # e.g. 80
Proto => \'tcp\'
);
die(\"no socket: $!\") unless $sock;
# ...
在正常情况下,一切都会按预期工作,但是当主机系统的Internet连接处于非活动状态时,\“ sock \\”变量为空,并且$!
消息为\“ Invalid arguments \”。
我是否不适当地使用了INET构造函数,或者这是预期的行为?如果是后者,是否有办法区分“网络接口无效”错误和构造函数方法的真正无效参数?
没有找到相关结果
已邀请:
1 个回复
社攻取墟槽
中返回
。如果您要使用“ 4”中的IP地址,则会看到真正的错误“网络不可达”。 另外,
设置
以限定
中返回的错误,因此,如果同时打印
和
,则会看到\“ Bad hostname \'google.com \'\\',这可能比\更好。网络不可达\“,您将获得IP地址而不是主机名。在这两种情况下,都应立即清除发生的情况。