NAME
IO::Socket::INET - Object interface for AF_INET domain sockets
SYNOPSIS
1 | use IO:: Socket ::INET; |
DESCRIPTION
IO::Socket::INET
provides an object interface to creating and using sockets in the AF_INET domain. It is built upon the IO::Socket interface and inherits all the methods defined by IO::Socket.
CONSTRUCTOR
-
new ( [ARGS] )
Creates an
IO::Socket::INET
object, which is a reference to a newly created symbol (see theSymbol
package).new
optionally takes arguments, these arguments are in key-value pairs.In addition to the key-value pairs accepted by IO::Socket,
IO::Socket::INET
provides.1234567891011121314151617PeerAddr 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
ReuseAddr Set SO_REUSEADDR before binding
Reuse Set SO_REUSEADDR before binding (deprecated,
prefer ReuseAddr)
ReusePort Set SO_REUSEPORT before binding
Broadcast Set SO_BROADCAST before binding
Timeout Timeout value
for
various operations
MultiHomed Try all addresses
for
multi-homed hosts
Blocking Determine
if
connection will be blocking mode
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. If theListen
argument is given, but false, the queue size will be set to 5.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 connect call will not block.The
PeerAddr
can be a hostname or the IP-address on the "xx.xx.xx.xx" form. ThePeerPort
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. ThePeerPort
specification can also be embedded in thePeerAddr
by preceding it with a ":".If
Proto
is not given and you specify a symbolicPeerPort
port, then the constructor will try to deriveProto
from the service name. As a last resortProto
"tcp" is assumed. TheType
parameter will be deduced fromProto
if not specified.If the constructor is only passed a single argument, it is assumed to be a
PeerAddr
specification.If
Blocking
is set to 0, the connection will be in nonblocking mode. If not specified it defaults to 1 (blocking mode).Examples:
12345678910111213141516171819202122$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'
);
$sock
= IO::
Socket
::INET->new(
PeerPort => 9999,
PeerAddr => inet_ntoa(INADDR_BROADCAST),
Proto => udp,
LocalAddr =>
'localhost'
,
Broadcast => 1 )
or
die
"Can't bind : $@\n"
;
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.
1NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
METHODS
-
sockaddr ()
Return the address part of the sockaddr structure for the socket
-
sockport ()
Return the port number that the socket is using on the local host
-
sockhost ()
Return the address part of the sockaddr structure for the socket in a text form xx.xx.xx.xx
-
peeraddr ()
Return the address part of the sockaddr structure for the socket on the peer host
-
peerport ()
Return the port number for the socket on the peer host.
-
peerhost ()
Return the address part of the sockaddr structure for the socket on the peer host in a text form xx.xx.xx.xx
SEE ALSO
AUTHOR
Graham Barr. Currently maintained by the Perl Porters. Please report all bugs to <perlbug@perl.org>.
COPYRIGHT
Copyright (c) 1996-8 Graham Barr <gbarr@pobox.com>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Please login to continue.