[代码] ruby代码
01 | require 'thread' |
02 | require 'socket' |
03 |
04 | class RequestHandler |
05 | def initialize(session) |
06 | @session = session |
07 | end |
08 |
09 | def process |
10 | while @session .gets.chop.length != 0 |
11 | end |
12 | @session .puts "HTTP/1.1 200 OK" |
13 | @session .puts "content-type: text/html" |
14 | @session .puts "" # End of headers |
15 | @session .puts "<html>" |
16 | @session .puts " <body>" |
17 | @session .puts " <center>" |
18 | @session .puts " <b>#{Time.now}</b>" |
19 | @session .puts " <center>" |
20 | @session .puts " </body>" |
21 | @session .puts "</html>" |
22 | @session .close |
23 | end |
24 | end |
25 |
26 | server = TCPServer. new ( "0.0.0.0" , "8888" ) |
27 | $currentRequests = [] |
28 | $requestedToShutDown = false |
29 |
30 | while ! $requestedToShutDown |
31 | session = server.accept |
32 | thread = Thread . new (session) do |newSession| |
33 | RequestHandler. new (newSession).process |
34 | end |
35 | $currentRequests .push(thread) |
36 | end |
37 | $currentRequests . each { |t| Thread .join(t) } |