class EventMachine::EvmaTCPServer
@private
def eventable_read
socket and a sockaddr_in which names the peer.
accept_nonblock returns an array consisting of the accepted
--
def eventable_read begin 10.times { descriptor,peername = io.accept_nonblock sd = EvmaTCPClient.new descriptor sd.is_server = true EventMachine::event_callback uuid, ConnectionAccepted, sd.uuid } rescue Errno::EWOULDBLOCK, Errno::EAGAIN end end
def initialize io
def initialize io super io end
def schedule_close
--
def schedule_close @close_scheduled = true end
def select_for_reading?
def select_for_reading? true end
def start_server host, port
play it safe and just build a socket.
with an object of type TCPServer. Prior versions won't so we
Versions of ruby 1.8.4 later than May 26 2006 will work properly
def start_server host, port sd = Socket.new( Socket::AF_INET, Socket::SOCK_STREAM, 0 ) sd.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, true ) sd.bind( Socket.pack_sockaddr_in( port, host )) sd.listen( 50 ) # 5 is what you see in all the books. Ain't enough. EvmaTCPServer.new sd end