Я использую следующий код, чтобы проверить состояние сервера определенного игрового сервера и проверить, подключен ли игровой сервер к сети.
begin
sock = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0)
sockaddr = Socket.sockaddr_in(game_server.gameserver_port, game_server.gameserver_hostname)
sock.connect(sockaddr)
server_status.status = 1
rescue
server_status.status = 0
end
Однако кажется, что код вслепую зависает на линии, никуда не переходя sock.connect (sockaddr), и не выдает ошибку, когда на этом порту нет служб, прослушивающих этот порт. Есть ли лучший способ сделать это в Ruby?