D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
ruby18
/
share
/
ri
/
1.8
/
system
/
Socket
/
Filename :
sysaccept-i.yaml
back
Copy
--- !ruby/object:RI::MethodDescription aliases: [] block_params: comment: - !ruby/struct:SM::Flow::P body: Accepts an incoming connection returnings an array containg the (integer) file descriptor for the incoming connection, <em>client_socket_fd</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.pack_sockaddr_in( 2200, 'localhost' )\n socket.bind( sockaddr )\n socket.listen( 5 )\n client_fd, client_sockaddr = socket.sysaccept\n client_socket = Socket.for_fd( client_fd )\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.pack_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>sysaccept</em> fails. - !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#sysaccept is_singleton: false name: sysaccept params: | socket.sysaccept => [client_socket_fd, client_sockaddr] visibility: public