module Rex::Socket::TcpServer
This class provides methods for interacting with a TCP server. It implements the Rex::IO::StreamServer
interface.
Public Class Methods
create(hash = {})
click to toggle source
Creates the server using the supplied hash.
# File lib/rex/socket/tcp_server.rb, line 25 def self.create(hash = {}) hash['Proto'] = 'tcp' hash['Server'] = true self.create_param(Rex::Socket::Parameters.from_hash(hash)) end
create_param(param)
click to toggle source
Wrapper around the base class' creation method that automatically sets the parameter's protocol to TCP and sets the server flag to true.
# File lib/rex/socket/tcp_server.rb, line 35 def self.create_param(param) param.proto = 'tcp' param.server = true Rex::Socket.create_param(param) end
Public Instance Methods
accept(opts = {})
click to toggle source
Accepts a child connection.
Calls superclass method
# File lib/rex/socket/tcp_server.rb, line 44 def accept(opts = {}) t = super() # jRuby compatibility if t.respond_to?('[]') t = t[0] end if (t) t.extend(Rex::Socket::Tcp) t.context = self.context pn = t.getpeername # We hit a "getpeername(2)" from Ruby return nil unless pn t.peerhost = pn[1] t.peerport = pn[2] end t end