Class: BasicSocket

Inherits:
IO
  • Object
show all
Defined in:
mrbgems/mruby-socket/mrblib/socket.rb

Direct Known Subclasses

IPSocket, Socket, UNIXSocket

Constant Summary collapse

@@do_not_reverse_lookup =
true

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from IO

#each, #each_byte, #each_char, #hash, open, pipe, popen, #pos=, #printf, read, #rewind

Constructor Details

#initialize(*args) ⇒ BasicSocket

call-seq:

BasicSocket.new(*args) -> basicsocket

Creates a new BasicSocket object. This is typically called by subclasses.



399
400
401
402
403
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 399

def initialize(*args)
  super(*args)
  self._is_socket = true
  @do_not_reverse_lookup = @@do_not_reverse_lookup
end

Instance Attribute Details

#do_not_reverse_lookupObject

Returns the value of attribute do_not_reverse_lookup.



461
462
463
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 461

def do_not_reverse_lookup
  @do_not_reverse_lookup
end

Class Method Details

.do_not_reverse_lookupObject

call-seq:

BasicSocket.do_not_reverse_lookup -> true or false

Returns the current setting for reverse DNS lookups.

BasicSocket.do_not_reverse_lookup  #=> false


377
378
379
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 377

def self.do_not_reverse_lookup
  @@do_not_reverse_lookup
end

.do_not_reverse_lookup=(val) ⇒ Object

call-seq:

BasicSocket.do_not_reverse_lookup = boolean -> boolean

Sets whether to perform reverse DNS lookups.

BasicSocket.do_not_reverse_lookup = true


389
390
391
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 389

def self.do_not_reverse_lookup=(val)
  @@do_not_reverse_lookup = val ? true : false
end

.for_fd(fd) ⇒ Object

call-seq:

BasicSocket.for_fd(fd) -> basicsocket

Creates a BasicSocket object from an existing file descriptor.

sock = BasicSocket.for_fd(3)


413
414
415
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 413

def self.for_fd(fd)
  super(fd, "r+")
end

Instance Method Details

#local_addressObject

call-seq:

basicsocket.local_address -> addrinfo

Returns an Addrinfo object for the local address of the socket.

sock.local_address  #=> #<Addrinfo: 127.0.0.1:12345 TCP>


427
428
429
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 427

def local_address
  Addrinfo.new self.getsockname
end

#recv_nonblock(maxlen, flags = 0) ⇒ Object

call-seq:

basicsocket.recv_nonblock(maxlen, flags=0) -> string

Receives data from the socket without blocking. May raise an exception if no data is available.

data = sock.recv_nonblock(1024)


440
441
442
443
444
445
446
447
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 440

def recv_nonblock(maxlen, flags=0)
  begin
    _setnonblock(true)
    recv(maxlen, flags)
  ensure
    _setnonblock(false)
  end
end

#remote_addressObject

call-seq:

basicsocket.remote_address -> addrinfo

Returns an Addrinfo object for the remote address of the socket.

sock.remote_address  #=> #<Addrinfo: 192.168.1.1:80 TCP>


457
458
459
# File 'mrbgems/mruby-socket/mrblib/socket.rb', line 457

def remote_address
  Addrinfo.new self.getpeername
end