home *** CD-ROM | disk | FTP | other *** search
-
-
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333)))) IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- IO::Socket - Object interface to socket communications
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use IO::Socket;
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- IO::Socket provides an object interface to creating and using sockets. It
- is built upon the the _I_O::_H_a_n_d_l_e manpage interface and inherits all the
- methods defined by the _I_O::_H_a_n_d_l_e manpage.
-
- IO::Socket only defines methods for those operations which are common to
- all types of socket. Operations which are specified to a socket in a
- particular domain have methods defined in sub classes of IO::Socket
-
- IO::Socket will export all functions (and constants) defined by the
- _S_o_c_k_e_t manpage.
-
- CCCCOOOONNNNSSSSTTTTRRRRUUUUCCCCTTTTOOOORRRR
- new ( [ARGS] )
- Creates an IO::Socket, which is a reference to a newly created symbol
- (see the Symbol package). new optionally takes arguments, these
- arguments are in key-value pairs. new only looks for one key Domain
- which tells new which domain the socket will be in. All other
- arguments will be passed to the configuration method of the package
- for that domain, See below.
-
- IO::Sockets will be in autoflush mode after creation. Note that
- versions of IO::Socket prior to 1.1603 (as shipped with Perl
- 5.004_04) did not do this. So if you need backward compatibility,
- you should set autoflush explicitly.
-
- MMMMEEEETTTTHHHHOOOODDDDSSSS
- See the _p_e_r_l_f_u_n_c manpage for complete descriptions of each of the
- following supported IO::Socket methods, which are just front ends for the
- corresponding built-in functions:
-
- socket
- socketpair
- bind
- listen
- accept
- send
- recv
- peername (getpeername)
- sockname (getsockname)
-
- Some methods take slightly different arguments to those defined in the
- _p_e_r_l_f_u_n_c manpage in attempt to make the interface more flexible. These
- are
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333)))) IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333))))
-
-
-
- accept([PKG])
- perform the system call accept on the socket and return a new object.
- The new object will be created in the same class as the listen
- socket, unless PKG is specified. This object can be used to
- communicate with the client that was trying to connect. In a scalar
- context the new socket is returned, or undef upon failure. In an
- array context a two-element array is returned containing the new
- socket and the peer address, the list will be empty upon failure.
-
- Additional methods that are provided are
-
- timeout([VAL])
- Set or get the timeout value associated with this socket. If called
- without any arguments then the current setting is returned. If called
- with an argument the current setting is changed and the previous
- value returned.
-
- sockopt(OPT [, VAL])
- Unified method to both set and get options in the SOL_SOCKET level.
- If called with one argument then getsockopt is called, otherwise
- setsockopt is called.
-
- sockdomain
- Returns the numerical number for the socket domain type. For example,
- for a AF_INET socket the value of &AF_INET will be returned.
-
- socktype
- Returns the numerical number for the socket type. For example, for a
- SOCK_STREAM socket the value of &SOCK_STREAM will be returned.
-
- protocol
- Returns the numerical number for the protocol being used on the
- socket, if known. If the protocol is unknown, as with an AF_UNIX
- socket, zero is returned.
-
- SSSSUUUUBBBB----CCCCLLLLAAAASSSSSSSSEEEESSSS
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt::::::::IIIINNNNEEEETTTT
-
- IO::Socket::INET provides a constructor to create an AF_INET domain
- socket and some related methods. The constructor can take the following
- options
-
- PeerAddr Remote host address <hostname>[:<port>]
- PeerPort Remote port or service <service>[(<no>)] | <no>
- LocalAddr Local host bind address hostname[:port]
- 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
- Reuse Set SO_REUSEADDR before binding
- Timeout Timeout value for various operations
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333)))) IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333))))
-
-
-
- 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 _c_o_n_n_e_c_t()
- is called.
-
- 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.
-
- 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');
-
-
- MMMMEEEETTTTHHHHOOOODDDDSSSS
-
- 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
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333)))) IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333))))
-
-
-
- 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
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt::::::::UUUUNNNNIIIIXXXX
-
- IO::Socket::UNIX provides a constructor to create an AF_UNIX domain
- socket and some related methods. The constructor can take the following
- options
-
- Type Type of socket (eg SOCK_STREAM or SOCK_DGRAM)
- Local Path to local fifo
- Peer Path to peer fifo
- Listen Create a listen socket
-
-
- MMMMEEEETTTTHHHHOOOODDDDSSSS
-
- hostpath()
- Returns the pathname to the fifo at the local end
-
- peerpath()
- Returns the pathanme to the fifo at the peer end
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- the _S_o_c_k_e_t manpage, the _I_O::_H_a_n_d_l_e manpage
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Graham Barr <_G_r_a_h_a_m._B_a_r_r@_t_i_u_k._t_i._c_o_m>
-
- CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
- Copyright (c) 1996 Graham Barr. All rights reserved. This program is free
- software; you can redistribute it and/or modify it under the same terms
- as Perl itself.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333)))) IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt((((3333))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-
-
-
-