class UV::DatagramConnection
Public Class Methods
new(server = nil, port = nil)
click to toggle source
Calls superclass method
UV::Connection::new
# File lib/uv-rays/connection.rb, line 162 def initialize(server = nil, port = nil) super() @reactor = reactor @transport = @reactor.udp @transport.progress { |*args| on_read(*args) } if not server.nil? server = '127.0.0.1' if server == 'localhost' raise ArgumentError, "Invalid server address #{server}" unless IPAddress.valid?(server) @transport.bind(server, port) end @transport.start_read end
Public Instance Methods
send_datagram(data, recipient_address, recipient_port)
click to toggle source
# File lib/uv-rays/connection.rb, line 178 def send_datagram(data, recipient_address, recipient_port) if IPAddress.valid? recipient_address @transport.send recipient_address, recipient_port, data else # Async DNS resolution # Note:: send here will chain the promise @reactor.lookup(recipient_address).then do |result| @transport.send result[0][0], recipient_port, data end end end