gpt4 book ai didi

ruby 一类轮 |测试远程主机端口

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:14 27 4
gpt4 key购买 nike

我正在尝试在 Ruby 中使用 Perl 命令

Perl

perl -MIO::Socket::INET -e 'until(new IO::Socket::INET("localhost:80")) { print "Waiting for network..\n"; sleep 1}'

我如何在 ruby​​ 中做同样的事情?

我试过了:

require 'socket'
until !( TCPSocket.new("localhost",80).close ) do
puts "Wait..."
sleep 1
end

我正在寻找一种 Ruby 语言的衬垫。

最佳答案

主要区别在于,如果无法建立 IO,Ruby 将引发错误,因此您需要挽救错误情况。它稍微改变了流程,但仍然非常可行:

loop { break if (TCPSocket.open("localhost",80) rescue nil); puts "Wait...."; sleep 1 }

从其他答案可以看出,可以从 Perl 版本进行更直接的转换。只需使用 Ruby 表达式 (TCPSocket.open("localhost",80) rescue nil) 来替换 Perl 的 new IO::Socket::INET("localhost:80") 以便 Ruby 的引发错误行为更好地匹配 Perl 的在无法创建对象时返回 undef

关于 ruby 一类轮 |测试远程主机端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989176/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com