【发布时间】:2010-03-02 02:36:40
【问题描述】:
我正在尝试在一个类的线程中运行一个模拟网络服务器。我已经尝试将类的@server 属性传递给线程块,但是一旦我尝试执行 server.accept,线程就会停止。有什么办法可以使这项工作?我希望基本上能够在这个脚本之外运行一个网络服务器,同时仍然通过 stdin.gets 获取用户输入。这可能吗?
class Server
def initialize()
@server = TCPServer.new(8080)
end
def run()
@thread = Thread.new(@server) { |server|
while true
newsock = server.accept
puts "some stuff after accept!"
next if !newsock
# some other stuff
end
}
end
end
def processCommand()
# some user commands here
end
test = Server.new
while true do
processCommand(STDIN.gets)
end
在上面的示例中,线程在server.accept 上终止
【问题讨论】:
-
发布一些代码示例可能有助于阐明您要完成的工作
-
希望澄清
标签: ruby multithreading oop