如果本地端口正在侦听或免费,我想实现check in ruby。
需要脚本返回代码,如果空闲端口是0
,并且在端口被占用(监听)的情况下返回代码是1
。
重要的是端口是本地的而不是远程的!对于远程端口,我找到了这个解决方案:Ruby - See if a port is open
我试过这个剧本:
ruby -e "
require 'socket' ;
server=TCPServer.new(25) ;
if server==nil ;
return 1 ;
else server.close ;
end
"
它返回" 0"在自由端口的情况下,但在端口占用时返回
-e:1:in `initialize': no implicit conversion of nil into String (TypeError)
from -e:1:in `new'
from -e:1:in `<main>'
那么如何更正该行脚本?
答案 0 :(得分:0)
尝试:
use perl5i::2;
$hash{@stuff->mo->checksum} = {
key => \@stuff,
value => 'value'
};
my $value = $hash{@stuff->mo->checksum}{value};
my $key = $hash{@stuff->mo->checksum}{key};
(用实际端口号替换YOUR_PORT_HERE,如果需要,删除换行符)