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

News / Blogs

- Perl Buzz
- Perl Iron Man
- Perlsphere
- Planet Perl
- TPF news
- Use Perl

See also

- CPAN
- Perl.org
- Perl.com
- Perl 5 Wiki
- Perl Jobs
- Perl Mongers
- Perl Monks

Contact

- Site designed and maintained by Jon Allen (JJ)
- http://perl.jonallen.info

- View the project page and FAQs

# IO::Socket::INET

Perl 5 version 10.1 documentation
Go to top • Show page index • Download PDF

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

Page index

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

Recently read

Tools

- Preferences