Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# IO::Socket::INET

Perl 5 version 18.2 documentation
Go to top
Show page index • Show recent pages
Recently read

# IO::Socket::INET

- NAME
- SYNOPSIS
- DESCRIPTION
- CONSTRUCTOR
  - METHODS
- SEE ALSO
- AUTHOR
- COPYRIGHT

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

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

Page index

- NAME
- SYNOPSIS
- DESCRIPTION
- CONSTRUCTOR
  - METHODS
- SEE ALSO
- AUTHOR
- COPYRIGHT