Class: UDPSocket
- Defined in:
- ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb
Constant Summary
Constants inherited from IO
IO::BUF_SIZE, IO::SEEK_CUR, IO::SEEK_END, IO::SEEK_SET
Instance Attribute Summary
Attributes inherited from BasicSocket
Instance Method Summary collapse
- #_sockaddr_in(port, host) ⇒ Object
- #bind(host, port) ⇒ Object
- #connect(host, port) ⇒ Object
-
#initialize(af = Socket::AF_INET) ⇒ UDPSocket
constructor
A new instance of UDPSocket.
- #recvfrom_nonblock(*args) ⇒ Object
- #send(mesg, flags, host = nil, port = nil) ⇒ Object
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
#<<, #_read_buf, #each, #each_byte, #eof?, #flush, #getc, #gets, #hash, open, pipe, popen, #pos, #pos=, #print, #printf, #puts, read, #read, #readchar, #readline, #readlines, #rewind, #seek, #ungetc, #write
Constructor Details
#initialize(af = Socket::AF_INET) ⇒ UDPSocket
Returns a new instance of UDPSocket.
310 311 312 313 314 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 310 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
347 348 349 350 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 347 def _sockaddr_in(port, host) ai = Addrinfo.getaddrinfo(host, port, @af, Socket::SOCK_DGRAM)[0] ai.to_sockaddr end |
#bind(host, port) ⇒ Object
316 317 318 319 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 316 def bind(host, port) Socket._bind(self.fileno, _sockaddr_in(port, host)) 0 end |
#connect(host, port) ⇒ Object
321 322 323 324 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 321 def connect(host, port) Socket._connect(self.fileno, _sockaddr_in(port, host)) 0 end |
#recvfrom_nonblock(*args) ⇒ Object
326 327 328 329 330 331 332 333 334 335 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 326 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
337 338 339 340 341 342 343 344 345 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 337 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 |