NAME

IOMux::Service::TCP - TCP (socket) based service

INHERITANCE

 IOMux::Service::TCP
   is an IOMux::Handler::Service
   is an IOMux::Handler

SYNOPSIS

  my $service = IOMux::Service::TCP->new
    ( # capitalized params are passed to the socket constructor
      Host   => 'localhost:8080'
    , Listen => 3

      # object to initialize when new connection arrives
    , conn_type => $conn_handler_class  # extends IOMux::Net::TCP
    , conn_opts => \@conn_handler_init_params
    );

DESCRIPTION

Accept TCP connections. When a connection arrives, it will get handled by a new object which gets added to the multiplexer as well.

Extends "DESCRIPTION" in IOMux::Handler::Service.

METHODS

Extends "METHODS" in IOMux::Handler::Service.

Constructors

Extends "Constructors" in IOMux::Handler::Service.

IOMux::Service::TCP->new(%options)
 -Option   --Defined in     --Default
  conn_opts                   []
  conn_type                   <required>
  fh         IOMux::Handler   <required>
  hostname                    <sockhost:sockport>
  name       IOMux::Handler   'listen tcp $host:$port'
  socket                      <created from capitalized parameters>
conn_opts => ARRAY

Pass some extra options when objects of conn_type are created, passed as list of pairs.

conn_type => CLASS|CODE

The CLASS (package name) of client to be created for each new contact. This CLASS must extend IOMux::Net::TCP. You may also provide a CODE reference which will be called with the socket leading to the client.

fh => FILEHANDLE
hostname => URI

How this socket gan be addressed from remote, for instance as virtual host for HTTP.

name => STRING
socket => IO::Socket::INET object
IOMux::Service::TCP->open($mode, $what, %options)

Inherited, see "Constructors" in IOMux::Handler

Accessors

Extends "Accessors" in IOMux::Handler::Service.

$obj->clientType()
$obj->fh()

Inherited, see "Accessors" in IOMux::Handler

$obj->fileno()

Inherited, see "Accessors" in IOMux::Handler

$obj->hostname()
$obj->mux()

Inherited, see "Accessors" in IOMux::Handler

$obj->name()

Inherited, see "Accessors" in IOMux::Handler

$obj->socket()
$obj->usesSSL()

Inherited, see "Accessors" in IOMux::Handler

User interface

Extends "User interface" in IOMux::Handler::Service.

Multiplexer

Extends "Multiplexer" in IOMux::Handler::Service.

Connection

Extends "Connection" in IOMux::Handler::Service.

$obj->muxInit( $mux, [$handler] )

Inherited, see "Connection" in IOMux::Handler

$obj->muxRemove()

Inherited, see "Connection" in IOMux::Handler

$obj->muxTimeout()

Inherited, see "Connection" in IOMux::Handler

Reading

Extends "Reading" in IOMux::Handler::Service.

$obj->muxExceptFlagged($fileno)

Inherited, see "Reading" in IOMux::Handler

$obj->muxReadFlagged()

Writing

Extends "Writing" in IOMux::Handler::Service.

$obj->muxWriteFlagged($fileno)

Inherited, see "Writing" in IOMux::Handler

Service

Extends "Service" in IOMux::Handler::Service.

$obj->muxConnection($client)

Inherited, see "Service" in IOMux::Handler::Service

Helpers

Extends "Helpers" in IOMux::Handler::Service.

$obj->extractSocket(HASH)
IOMux::Service::TCP->extractSocket(HASH)

Inherited, see "Helpers" in IOMux::Handler

$obj->fdset($state, $read, $write, $error)

Inherited, see "Helpers" in IOMux::Handler

$obj->show()

Inherited, see "Helpers" in IOMux::Handler

DIAGNOSTICS

Error: $pkg needs STREAM protocol socket
Error: a conn_type for incoming request is need by $name
Error: accept for socket $name failed

SEE ALSO

This module is part of IOMux distribution version 1.01, built on January 15, 2020. Website: http://perl.overmeer.net/CPAN

LICENSE

Copyrights 2011-2020 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/