tserver
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:A persistant multithread TCP server
= TServer

Author::        Yann Lugrin (yann.lugrin at sans-savoir dot net)
Copyright:: 		Copyright (c) 2007-2008 Yann Lugrin
Licence::       MIT[link://files/LICENSE.html]
Last version::	0.2.0

This librarie implements a persistant multithread TCP server, it is alternative
to 'gserver'[http://ruby-doc.org/stdlib/libdoc/gserver/rdoc/index.html] standard
librarie. TServer is designed to be inherited by your custom server class. The
server can accepts multiple simultaneous connections from clients, can be
configured to have a maximum connection and a minimum permanent listener thread.
Can be imediatly stopped, gracefull shutdown (dont accept new connection but
wait established connection is closed before realy stop) or reloaded (terminate
listener after established connection is closed and respawn new).

== Example

This example can receive and return simple string from telnet connection.

  require 'tserver'

  class ExampleServer < TServer
    class Listener < TServer::Listener
      def process
        connection.each do |line|
          break if line =~ /(quit|exit|close)/

          log '> ' + line.chomp
          conn.puts Time.now.to_s + '> ' + line.chomp
        end
      end
    end
  end

  # Create the server with logging enabled (server activity is displayed
  # in console with received data)
  server = ExampleServer.new
  server.verbose = true

  # Shutdown the server when script is interupted
  Signal.trap('SIGINT') do
    server.shutdown
  end

  # Start the server (joined is set to true and the line wait on server
  # thread before continue, the default values of this parameter is set to
  # false, you can also use 'server.join' after server.start)
  server.start(true)

  # Now you can open a telnet connection to 127.0.0.1:10001 (telnet 127.0.0.1 10001)
  # and send text (use exit to close the connection)

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。