Class: UV::TcpServer

Inherits:
Libuv::TCP
  • Object
show all
Defined in:
lib/uv-rays/tcp_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(reactor, server, port, klass, *args) ⇒ TcpServer

Returns a new instance of TcpServer.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/uv-rays/tcp_server.rb', line 7

def initialize(reactor, server, port, klass, *args)
    super(reactor)

    @klass = klass
    @args = args

    if server == port && port.is_a?(Integer)
        # We are opening a socket descriptor
        open(server)
    else
        # Perform basic checks before attempting to bind address
        server = '127.0.0.1' if server == 'localhost'
        if IPAddress.valid? server
            @server = server
            bind(server, port) { |client| new_connection(client) }
            listen(1024)
        else
            raise ArgumentError, "Invalid server address #{server}"
        end
    end
end