| Server IP : 109.234.162.214 / Your IP : 216.73.216.157 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/ruby18/share/ri/1.8/system/Socket/ |
Upload File : |
--- !ruby/object:RI::MethodDescription
aliases: []
block_params:
comment:
- !ruby/struct:SM::Flow::P
body: Accepts an incoming connection using accept(2) after O_NONBLOCK is set for the underlying file descriptor. It returns an array containg the accpeted socket for the incoming connection, <em>client_socket</em>, and a string that contains the <tt>struct</tt> sockaddr information about the caller, <em>client_sockaddr</em>.
- !ruby/struct:SM::Flow::H
level: 3
text: Example
- !ruby/struct:SM::Flow::VERB
body: " # In one script, start this first\n require 'socket'\n include Socket::Constants\n socket = Socket.new(AF_INET, SOCK_STREAM, 0)\n sockaddr = Socket.sockaddr_in(2200, 'localhost')\n socket.bind(sockaddr)\n socket.listen(5)\n begin\n client_socket, client_sockaddr = socket.accept_nonblock\n rescue Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::ECONNABORTED, Errno::EPROTO, Errno::EINTR\n IO.select([socket])\n retry\n end\n puts "The client said, '#{client_socket.readline.chomp}'"\n client_socket.puts "Hello from script one!"\n socket.close\n\n # In another script, start this second\n require 'socket'\n include Socket::Constants\n socket = Socket.new(AF_INET, SOCK_STREAM, 0)\n sockaddr = Socket.sockaddr_in(2200, 'localhost')\n socket.connect(sockaddr)\n socket.puts "Hello from script 2."\n puts "The server said, '#{socket.readline.chomp}'"\n socket.close\n"
- !ruby/struct:SM::Flow::P
body: Refer to Socket#accept for the exceptions that may be thrown if the call to <em>accept_nonblock</em> fails.
- !ruby/struct:SM::Flow::P
body: Socket#accept_nonblock may raise any error corresponding to accept(2) failure, including Errno::EAGAIN.
- !ruby/struct:SM::Flow::H
level: 3
text: See
- !ruby/object:SM::Flow::LIST
contents:
- !ruby/struct:SM::Flow::LI
label: "*"
body: Socket#accept
type: :BULLET
full_name: Socket#accept_nonblock
is_singleton: false
name: accept_nonblock
params: |
socket.accept_nonblock => [client_socket, client_sockaddr]
visibility: public