Ruby:检查本地端口是否正在侦听

时间:2015-12-19 19:39:42

标签: ruby

如果本地端口正在侦听或免费,我想实现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>'

那么如何更正该行脚本?

1 个答案:

答案 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,如果需要,删除换行符)