Class: UDPSocket
Instance Attribute Summary
Attributes inherited from BasicSocket
#do_not_reverse_lookup
Instance Method Summary
collapse
Methods inherited from IPSocket
#addr, getaddress, #peeraddr, #recvfrom
Methods inherited from BasicSocket
do_not_reverse_lookup, do_not_reverse_lookup=, for_fd, #local_address, #recv_nonblock, #remote_address
Methods inherited from IO
#<<, #each, #each_byte, #each_char, #hash, open, pipe, popen, #pos=, #print, #printf, #puts, read, #rewind, #ungetbyte
Constructor Details
#initialize(af = Socket::AF_INET) ⇒ UDPSocket
Returns a new instance of UDPSocket.
309
310
311
312
313
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 309
def initialize(af=Socket::AF_INET)
super(Socket._socket(af, Socket::SOCK_DGRAM, 0), "r+")
@af = af
self
end
|
Instance Method Details
#_sockaddr_in(port, host) ⇒ Object
346
347
348
349
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 346
def _sockaddr_in(port, host)
ai = Addrinfo.getaddrinfo(host, port, @af, Socket::SOCK_DGRAM)[0]
ai.to_sockaddr
end
|
#bind(host, port) ⇒ Object
315
316
317
318
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 315
def bind(host, port)
Socket._bind(self.fileno, _sockaddr_in(port, host))
0
end
|
#connect(host, port) ⇒ Object
320
321
322
323
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 320
def connect(host, port)
Socket._connect(self.fileno, _sockaddr_in(port, host))
0
end
|
#recvfrom_nonblock(*args) ⇒ Object
325
326
327
328
329
330
331
332
333
334
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 325
def recvfrom_nonblock(*args)
s = self
begin
self._setnonblock(true)
self.recvfrom(*args)
ensure
# XXX: self is a SystemcallException here! (should be bug)
s._setnonblock(false)
end
end
|
#send(mesg, flags, host = nil, port = nil) ⇒ Object
336
337
338
339
340
341
342
343
344
|
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 336
def send(mesg, flags, host=nil, port=nil)
if port
super(mesg, flags, _sockaddr_in(port, host))
elsif host
super(mesg, flags, host)
else
super(mesg, flags)
end
end
|