Ruby 构建支持多线程的 Web 服务器

[代码] 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
24end
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)
36end
37 $currentRequests.each { |t| Thread.join(t) }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值