28 Apr 2022 02:01:07 UTC
- Development release
- Distribution: IO
- Module version: 1.49
- Source (raw)
- Browse (raw)
- How to Contribute
- Testers (379 / 4 / 0)
- KwaliteeBus factor: 5
- 62.46% Coverage
- License: perl_5
- Activity24 month
- Download (185.41KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
IO::Socket::INET - Object interface for AF_INET domain sockets
- new ( [ARGS] )
IO::Socket::INETobject, which is a reference to a newly created symbol (see the
newoptionally takes arguments, these arguments are in key-value pairs.
In addition to the key-value pairs accepted by IO::Socket,
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
Listenis 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 the
Listenargument is given, but false, the queue size will be set to 5.
Although it is not illegal, the use of
MultiHomedon 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.
PeerAddrcan be a hostname or the IP-address on the "xx.xx.xx.xx" form. The
PeerPortcan 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
PeerPortspecification can also be embedded in the
PeerAddrby preceding it with a ":".
Protois not given and you specify a symbolic
PeerPortport, then the constructor will try to derive
Protofrom the service name. As a last resort
Proto"tcp" is assumed. The
Typeparameter will be deduced from
Protoif not specified.
If the constructor is only passed a single argument, it is assumed to be a
Blockingis set to 0, the connection will be in nonblocking mode. If not specified it defaults to 1 (blocking mode).
$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 : $IO::Socket::errstr\n";
If the constructor fails it will return
undefand set the
$IO::Socket::errstrpackage variable to contain an error message.
$sock = IO::Socket::INET->new(...) or die "Cannot create socket - $IO::Socket::errstr\n";
For legacy reasons the error message is also set into the global
$@variable, and you may still find older code which looks here instead.
$sock = IO::Socket::INET->new(...) or die "Cannot create socket - $@\n";
- 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
Graham Barr. Currently maintained by the Perl Porters. Please report all bugs at https://github.com/Perl/perl5/issues.
Copyright (c) 1996-8 Graham Barr <email@example.com>. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.