В коде, который вы разместили, вы не называете Server # run. Это, вероятно, просто недосмотр в создании поста. Предполагается, что Server.accept блокирует поток, возвращаясь только тогда, когда кто-то подключился.
Любой, кто приступает к написанию HTTP-сервера со светлыми глазами, вскоре узнает, что гораздо интереснее позволить кому-то еще делать эту работу. Для быстрых и грязных HTTP-серверов у меня есть хорошие результаты с помощью WEBrick. Это часть библиотеки Ruby. Вот сервер WEBrick, который будет обслуживать "Boo!" Когда вы подключаете браузер к localhost:8080/
:
#!/usr/bin/ruby1.8
require 'webrick'
class MiniServer
def initialize
Thread.new do
Thread::abort_on_exception = true
server = WEBrick::HTTPServer.new(:BindAddress=>'127.0.0.1',
:Port=>8080,
:Logger=>WEBrick::Log.new('/dev/stdout'))
server.mount('/', Servlet, self)
server.start
end
end
private
class Servlet < WEBrick::HTTPServlet::AbstractServlet
def initialize(webrick_server, mini_server)
end
def do_GET(req, resp)
resp.body = "<html><head></head><body>Boo!</body></html>"
end
alias :do_POST :do_GET
end
end
server = MiniServer.new
gets