我正在尝试编写服务器。
require 'socket'
server = TCPServer.open(2000)
loop {
Thread.start(server.accept) do |client|
client.puts(Time.now.ctime)
class DisplayMsg
def self.msg(msg)
client.puts msg
client.close
end
end
client.puts "Select 1,2,3"
while user_input = client.gets.chomp
case user_input
when "1"
client.puts "Hello"
when "2"
client.puts "Alo"
when "3"
DisplayMsg.msg("Exiting")
end
end
end
}
当我尝试通过调用类中定义的函数来Exit
时,它可以工作。在那里,程序挂起并等待。
我的猜测是没有调用该函数,因为当我将对该函数的调用与client.puts
交换时,它可以工作。
任何帮助/指示不胜感激。
启动子线程时,主线程不会等待子线程结束,而是在子线程完成其作业之前完成,除非您join
子线程。