This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

accept_nonblock

        # Socket.accept_nonblock

(from ruby core)
---
    socket.accept_nonblock([options]) => [client_socket, client_addrinfo]

---

Accepts an incoming connection using accept(2) after O_NONBLOCK is set
for the underlying file descriptor. It returns an array containing the
accepted socket for the incoming connection, *client_socket*, and an
Addrinfo, *client_addrinfo*.

### Example
    # In one script, start this first
    require 'socket'
    include Socket::Constants
    socket = Socket.new(AF_INET, SOCK_STREAM, 0)
    sockaddr = Socket.sockaddr_in(2200, 'localhost')
    socket.bind(sockaddr)
    socket.listen(5)
    begin # emulate blocking accept
      client_socket, client_addrinfo = socket.accept_nonblock
    rescue IO::WaitReadable, Errno::EINTR
      IO.select([socket])
      retry
    end
    puts "The client said, '#{client_socket.readline.chomp}'"
    client_socket.puts "Hello from script one!"
    socket.close

    # In another script, start this second
    require 'socket'
    include Socket::Constants
    socket = Socket.new(AF_INET, SOCK_STREAM, 0)
    sockaddr = Socket.sockaddr_in(2200, 'localhost')
    socket.connect(sockaddr)
    socket.puts "Hello from script 2."
    puts "The server said, '#{socket.readline.chomp}'"
    socket.close

Refer to Socket#accept for the exceptions that may be thrown if the call
to *accept_nonblock* fails.

Socket#accept_nonblock may raise any error corresponding to accept(2)
failure, including Errno::EWOULDBLOCK.

If the exception is Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED or Errno::EPROTO, it is extended by
IO::WaitReadable. So IO::WaitReadable can be used to rescue the
exceptions for retrying accept_nonblock.

By specifying a keyword argument *exception* to `false`, you can
indicate that accept_nonblock should not raise an IO::WaitReadable
exception, but return the symbol `:wait_readable` instead.

### See
*   Socket#accept




      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.