我有以下代码(较大脚本的一部分)
my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => 0); # just use any available port.
$port = $lsn->sockport();
我得到了错误Can't call method "sockport" on an undefined value
。
的文档IO::Socket::INET
在这个问题上没有说太多:https ://perldoc.perl.org/IO/Socket/INET.html (有更好的地方看吗?对这个模块不太熟悉)。
奇怪的是,我最近更改了这个,在它传入一个非零、随机生成的端口号之前,当端口正在使用时,有时会中断。
我在本地 Windows 机器上测试了传入0
(同样,文档似乎没有提到如何让它选择要绑定的端口),这似乎使它“选择任何可用端口”,这就是我想要的,但它在 Solaris 上的行为可能有所不同(这是发生此问题的地方)?