Creates an IO::Socket::INET object, which is a reference to a
newly created symbol (see the Symbol package). new
optionally takes arguments, these arguments are in key-value pairs.
In addition to the key-value pairs accepted by the IO::Socket manpage,
IO::Socket::INET provides.
PeerAddr Remote host address <hostname>[:<port>]
PeerHost Synonym for PeerAddr
PeerPort Remote port or service <service>[(<no>)] | <no>
LocalAddr Local host bind address hostname[:port]
LocalHost Synonym for LocalAddr
LocalPort Local host bind port <service>[(<no>)] | <no>
Proto Protocol name (or number) "tcp" | "udp" | ...
Type Socket type SOCK_STREAM | SOCK_DGRAM | ...
Listen Queue size for listen
Reuse Set SO_REUSEADDR before binding
Timeout Timeout value for various operations
MultiHomed Try all adresses for multi-homed hosts
If Listen is defined then a listen socket is created, else if the
socket type, which is derived from the protocol, is SOCK_STREAM then
connect() is called.
Although it is not illegal, the use of MultiHomed on a socket
which is in non-blocking mode is of little use. This is because the
first connect will never fail with a timeout as the connaect call
will not block.
The PeerAddr can be a hostname or the IP-address on the
``xx.xx.xx.xx'' form. The PeerPort can be a number or a symbolic
service name. The service name might be followed by a number in
parenthesis which is used if the service is not known by the system.
The PeerPort specification can also be embedded in the PeerAddr
by preceding it with a ``:''.
If Proto is not given and you specify a symbolic PeerPort port,
then the constructor will try to derive Proto from the service
name. As a last resort Proto ``tcp'' is assumed. The Type
parameter will be deduced from Proto if not specified.
If the constructor is only passed a single argument, it is assumed to
be a PeerAddr specification.
Examples:
$sock = IO::Socket::INET->new(PeerAddr => 'www.perl.org',
PeerPort => 'http(80)',
Proto => 'tcp');
$sock = IO::Socket::INET->new(PeerAddr => 'localhost:smtp(25)');
$sock = IO::Socket::INET->new(Listen => 5,
LocalAddr => 'localhost',
LocalPort => 9000,
Proto => 'tcp');
$sock = IO::Socket::INET->new('127.0.0.1:25');
NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
As of VERSION 1.18 all IO::Socket objects have autoflush turned on
by default. This was not the case with earlier releases.
NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE