Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
ri
/
2.1.0
/
system
/
UDPSocket
/
//opt/alt/ruby21/share/ri/2.1.0/system/UDPSocket/recvfrom_nonblock-i.ri
U:RDoc::AnyMethod[iI"recvfrom_nonblock:ETI" UDPSocket#recvfrom_nonblock;TF:publico:RDoc::Markup::Document:@parts[o:RDoc::Markup::Paragraph; [I"LReceives up to _maxlen_ bytes from +udpsocket+ using recvfrom(2) after ;TI";O_NONBLOCK is set for the underlying file descriptor. ;TI"9If _maxlen_ is omitted, its default value is 65536. ;TI"4_flags_ is zero or more of the +MSG_+ options. ;TI"EThe first element of the results, _mesg_, is the data received. ;TI"YThe second element, _sender_inet_addr_, is an array to represent the sender address.;To:RDoc::Markup::BlankLine o; ; [I"!When recvfrom(2) returns 0, ;TI"?Socket#recvfrom_nonblock returns an empty string as data. ;TI"It means an empty packet.;T@S:RDoc::Markup::Heading: leveli: textI"Parameters;To:RDoc::Markup::List: @type:BULLET:@items[o:RDoc::Markup::ListItem:@label0; [o; ; [I">+maxlen+ - the number of bytes to receive from the socket;To;;0; [o; ; [I"1+flags+ - zero or more of the +MSG_+ options;T@S;; i;I"Example;To:RDoc::Markup::Verbatim; [I"require 'socket' ;TI"s1 = UDPSocket.new ;TI"s1.bind("127.0.0.1", 0) ;TI"s2 = UDPSocket.new ;TI"s2.bind("127.0.0.1", 0) ;TI")s2.connect(*s1.addr.values_at(3,1)) ;TI")s1.connect(*s2.addr.values_at(3,1)) ;TI"s1.send "aaa", 0 ;TI"'begin # emulate blocking recvfrom ;TI"i p s2.recvfrom_nonblock(10) #=> ["aaa", ["AF_INET", 33302, "localhost.localdomain", "127.0.0.1"]] ;TI"rescue IO::WaitReadable ;TI" IO.select([s2]) ;TI" retry ;TI" end ;T:@format0o; ; [I"PRefer to Socket#recvfrom for the exceptions that may be thrown if the call ;TI""to _recvfrom_nonblock_ fails.;T@o; ; [I"[UDPSocket#recvfrom_nonblock may raise any error corresponding to recvfrom(2) failure, ;TI""including Errno::EWOULDBLOCK.;T@o; ; [I"=If the exception is Errno::EWOULDBLOCK or Errno::AGAIN, ;TI")it is extended by IO::WaitReadable. ;TI"]So IO::WaitReadable can be used to rescue the exceptions for retrying recvfrom_nonblock.;T@S;; i;I"See;To;;;;[o;;0; [o; ; [I"Socket#recvfrom;T: @fileI"ext/socket/udpsocket.c;T:0@omit_headings_from_table_of_contents_below0I"�udpsocket.recvfrom_nonblock(maxlen) => [mesg, sender_inet_addr] udpsocket.recvfrom_nonblock(maxlen, flags) => [mesg, sender_inet_addr] ;T0[ I"(*args);T@OFI"UDPSocket;TcRDoc::NormalClass00