Class: Async::IO::UDPSocket

Inherits:
IPSocket show all
Defined in:
lib/async/io/udp_socket.rb

Overview

Asynchronous UDP socket wrapper.

Constant Summary

Constants inherited from Generic

Generic::WRAPPERS

Instance Attribute Summary

Attributes inherited from Generic

#timeout

Instance Method Summary collapse

Methods included from Peer

#connected?, #eof, #eof?, #protocol, #sync, #sync=, #type

Methods inherited from Generic

#<<, #connected?, #dup, #nonblock, #nonblock=, #nonblock?, #read, #sysread, #syswrite, #wait, wrap, wrap_blocking_method, wraps, #write

Constructor Details

#initialize(family) ⇒ UDPSocket

Returns a new instance of UDPSocket.


31
32
33
34
35
36
37
# File 'lib/async/io/udp_socket.rb', line 31

def initialize(family)
	if family.is_a? ::UDPSocket
		super(family)
	else
		super(::UDPSocket.new(family))
	end
end

Instance Method Details

#recvfromObject

This function is so fucked. Why does `UDPSocket#recvfrom` return the remote address as an array, but `Socket#recfrom` return it as an `Addrinfo`? You should prefer `recvmsg`. Invokes `recvfrom_nonblock` on the underlying io. If the operation would block, the current task is paused until the operation can succeed, at which point it's resumed and the operation is completed.


43
# File 'lib/async/io/udp_socket.rb', line 43

wrap_blocking_method :recvfrom, :recvfrom_nonblock