Class: Socket
- Inherits:
-
BasicSocket
- Object
- IO
- BasicSocket
- Socket
- Includes:
- Constants
- Defined in:
- ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb,
ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb,
ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb
Defined Under Namespace
Classes: Option
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
Class Method Summary collapse
-
.getaddrinfo(nodename, servname, family = nil, socktype = nil, protocol = nil, flags = 0) ⇒ Object
def self.accept_loop.
-
.open(*args) ⇒ Object
def self.getnameinfo def self.ip_address_list.
- .sockaddr_in(port, host) ⇒ Object (also: pack_sockaddr_in)
-
.unpack_sockaddr_in(sa) ⇒ Object
def self.tcp def self.tcp_server_loop def self.tcp_server_sockets def self.udp_server_loop def self.udp_server_loop_on def self.udp_server_recv def self.udp_server_sockets def self.unix(path) def self.unix_server_loop def self.unix_server_socket.
- .unpack_sockaddr_un(sa) ⇒ Object
Instance Method Summary collapse
- #accept ⇒ Object
- #accept_nonblock ⇒ Object
- #bind(sockaddr) ⇒ Object
- #connect(sockaddr) ⇒ Object
- #connect_nonblock(sockaddr) ⇒ Object
-
#initialize(domain, type, protocol = 0) ⇒ Socket
constructor
A new instance of Socket.
-
#listen(backlog) ⇒ Object
def ipv6only!.
- #recvfrom(maxlen, flags = 0) ⇒ Object
- #recvfrom_nonblock(*args) ⇒ Object
- #sysaccept ⇒ Object
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, pipe, popen, #pos, #pos=, #print, #printf, #puts, read, #read, #readchar, #readline, #readlines, #rewind, #seek, #ungetc, #write
Constructor Details
Class Method Details
.getaddrinfo(nodename, servname, family = nil, socktype = nil, protocol = nil, flags = 0) ⇒ Object
def self.accept_loop
360 361 362 363 364 365 366 367 368 369 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 360 def self.getaddrinfo(nodename, servname, family=nil, socktype=nil, protocol=nil, flags=0) Addrinfo.getaddrinfo(nodename, servname, family, socktype, protocol, flags).map { |ai| ary = ai._to_array ary[2] = nodename ary[4] = ai.afamily ary[5] = ai.socktype ary[6] = ai.protocol ary } end |
.open(*args) ⇒ Object
def self.getnameinfo def self.ip_address_list
374 375 376 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 374 def self.open(*args) new(args) end |
.sockaddr_in(port, host) ⇒ Object Also known as: pack_sockaddr_in
378 379 380 381 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 378 def self.sockaddr_in(port, host) ai = Addrinfo.getaddrinfo(host, port, nil, Socket::SOCK_DGRAM)[0] ai.to_sockaddr end |
.unpack_sockaddr_in(sa) ⇒ Object
def self.tcp def self.tcp_server_loop def self.tcp_server_sockets def self.udp_server_loop def self.udp_server_loop_on def self.udp_server_recv def self.udp_server_sockets def self.unix(path) def self.unix_server_loop def self.unix_server_socket
394 395 396 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 394 def self.unpack_sockaddr_in(sa) Addrinfo.new(sa).ip_unpack.reverse end |
Instance Method Details
#accept ⇒ Object
408 409 410 411 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 408 def accept fd, addr = self.sysaccept [ Socket.for_fd(fd), addr ] end |
#accept_nonblock ⇒ Object
413 414 415 416 417 418 419 420 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 413 def accept_nonblock begin self._setnonblock(true) self.accept ensure self._setnonblock(false) end end |
#bind(sockaddr) ⇒ Object
422 423 424 425 426 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 422 def bind(sockaddr) sockaddr = sockaddr.to_sockaddr if sockaddr.is_a? Addrinfo Socket._bind(self.fileno, sockaddr) 0 end |
#connect(sockaddr) ⇒ Object
428 429 430 431 432 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 428 def connect(sockaddr) sockaddr = sockaddr.to_sockaddr if sockaddr.is_a? Addrinfo Socket._connect(self.fileno, sockaddr) 0 end |
#connect_nonblock(sockaddr) ⇒ Object
434 435 436 437 438 439 440 441 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 434 def connect_nonblock(sockaddr) begin self._setnonblock(true) self.connect(sockaddr) ensure self._setnonblock(false) end end |
#listen(backlog) ⇒ Object
def ipv6only!
445 446 447 448 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 445 def listen(backlog) Socket._listen(self.fileno, backlog) 0 end |
#recvfrom(maxlen, flags = 0) ⇒ Object
450 451 452 453 454 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 450 def recvfrom(maxlen, flags=0) msg, sa = _recvfrom(maxlen, flags) socktype = self.getsockopt(Socket::SOL_SOCKET, Socket::SO_TYPE).int [ msg, Addrinfo.new(sa, Socket::PF_UNSPEC, socktype) ] end |
#recvfrom_nonblock(*args) ⇒ Object
456 457 458 459 460 461 462 463 |
# File 'ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrblib/socket.rb', line 456 def recvfrom_nonblock(*args) begin self._setnonblock(true) self._recvfrom(*args) ensure self._setnonblock(false) end end |