我似乎无法让这个工作;为什么Thread.start
不会开始?
# encoding: utf-8
require 'socket'
print "choose host: "
host = gets.chomp
print "choose starting port: "
sport = gets.to_i
print "choose ending port: "
eport = gets.to_i
def scanner (sport, eport, host)
while sport <= eport
begin
s = TCPSocket.new(host, sport)
if s
puts "Port #{sport} is open!"
end
rescue
puts "Port #{sport} is closed!"
end
sport += 1
end
end
Thread.start([scanner]sport, eport, host)
答案 0 :(得分:2)
您需要从主线程加入工作线程。发生的事情是导致整个进程退出的主线程退出,在工作线程完成之前关闭它。
您需要在启动它之后通过加入它来等待工作线程。在你的语言线程api中寻找像Thread.join
或类似的函数。