Creating a Web Server with thread support : TCP Server « Network « Ruby

Home
Ruby
1.ActiveRecord
2.Array
3.CGI
4.Class
5.Collections
6.Database
7.Date
8.Design Patterns
9.Development
10.File Directory
11.GUI
12.Hash
13.Language Basics
14.Method
15.Network
16.Number
17.Rails
18.Range
19.Reflection
20.Statement
21.String
22.Threads
23.Time
24.Tk
25.Unit Test
26.Windows Platform
27.XML
Ruby » Network » TCP Server 




Creating a Web Server with thread support


require 'thread'
require 'socket'

class RequestHandler
    def initialize(session)
    @session = session
    end

    def process
        while @session.gets.chop.length != 0
        end
        @session.puts "HTTP/1.1 200 OK"
        @session.puts "content-type: text/html"
        @session.puts "" End of headers
        @session.puts "<html>"
        @session.puts "   <body>"
        @session.puts "     <center>"
        @session.puts "        <b>#{Time.now}</b>"
        @session.puts "     <center>"
        @session.puts "   </body>"
        @session.puts "</html>"
        @session.close
    end
end

server = TCPServer.new("0.0.0.0""8888")
$currentRequests = []
$requestedToShutDown = false

while !$requestedToShutDown
    session = server.accept
    thread = Thread.new(sessiondo |newSession|
        RequestHandler.new(newSession).process
    end
    $currentRequests.push(thread)
end
$currentRequests.each |t| Thread.join(t) }

 














Related examples in the same category
1.Building a Simple TCP Server
2.Multi-Client TCP Servers
3.To create a simple Web server, you can accept connections on the IP address 0.0.0.0 and the port number 80
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.