--- !ruby/object:RI::MethodDescription
aliases: []
block_params:
comment:
- !ruby/struct:SM::Flow::P
body: Requests a connection to be made on the given server_sockaddr after O_NONBLOCK is set for the underlying file descriptor. Returns 0 if successful, otherwise an exception is raised.
- !ruby/struct:SM::Flow::H
level: 3
text: Parameter
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "*"
body: server_sockaddr - the struct sockaddr contained in a string
type: :BULLET
- !ruby/struct:SM::Flow::H
level: 3
text: "Example:"
- !ruby/struct:SM::Flow::VERB
body: " # Pull down Google's web page\n require 'socket'\n include Socket::Constants\n socket = Socket.new(AF_INET, SOCK_STREAM, 0)\n sockaddr = Socket.sockaddr_in(80, 'www.google.com')\n begin\n socket.connect_nonblock(sockaddr)\n rescue Errno::EINPROGRESS\n IO.select(nil, [socket])\n begin\n socket.connect_nonblock(sockaddr)\n rescue Errno::EISCONN\n end\n end\n socket.write("GET / HTTP/1.0\\r\\n\\r\\n")\n results = socket.read\n"
- !ruby/struct:SM::Flow::P
body: Refer to Socket#connect for the exceptions that may be thrown if the call to connect_nonblock fails.
- !ruby/struct:SM::Flow::P
body: Socket#connect_nonblock may raise any error corresponding to connect(2) failure, including Errno::EINPROGRESS.
- !ruby/struct:SM::Flow::H
level: 3
text: See
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "*"
body: Socket#connect
type: :BULLET
full_name: Socket#connect_nonblock
is_singleton: false
name: connect_nonblock
params: |
socket.connect_nonblock(server_sockaddr) => 0
visibility: public