-- Perl 5.8.6 documentation --
IO::Socket::INET

NAME

IO::Socket::INET - Object interface for AF_INET domain sockets

SYNOPSIS

    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 the Symbol 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.

        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
        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 adresses 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.

    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. 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.

    If Blocking is set to 0, the connection will be in nonblocking mode. If not specified it defaults to 1 (blocking mode).

    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');
    
       $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.

     NOTE 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

Socket, IO::Socket

AUTHOR

Graham Barr. Currently maintained by the Perl Porters. Please report all bugs to <perl5-porters@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.