GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  NET::NBSOCKET (3)

.ds Aq ’

NAME

Net::NBsocket -- Non-Blocking Sockets

CONTENTS

SYNOPSIS



  use Net::NBsocket qw(
        open_UDP
        open_udpNB
        open_Listen
        open_listenNB
        connectBlk
        connect_NB
        accept_Blk
        accept_NB
        set_NB
        set_so_linger
        dyn_bind
        inet_aton
        inet_ntoa
        sockaddr_in
        sockaddr_un
        inet_pton
        inet_ntop
        ipv6_aton
        ipv6_n2x
        ipv6_n2d
        INADDR_ANY
        INADDR_BROADCAST
        INADDR_LOOPBACK
        INADDR_NONE
        AF_INET
        AF_INET6
        in6addr_any
        in6addr_loopback       
        havesock6
        isupport6
        pack_sockaddr_in6
        unpack_sockaddr_in6
  );

  $sock = open_UDP($af_family);
  $sock = open_udpNB($af_family);
  DEPRECATED $sock = bind2pp($sock,$port_path,$netaddr);
  $listener = open_Listen($port_path,$netaddr,$af_family);
  $listener = open_listenNB($port_path,$netaddr,$af_family);
  $client = connectBlk($port_path,$netaddr,$af_family);
  $client = connect_NB($port_path,$netaddr,$af_family);
  ($sock,$netaddr) = accept_Blk($srvsock);
  ($sock,$netaddr) = accept_NB($srvsock);
  $rv = set_NB($sock);
  $rv = set_so_linger($sock,$seconds);
  $port = dyn_bind($sock,$netaddr);

        IPv4
  $netaddr = inet_aton($dot_quad);
  $dot_quad = inet_ntoa($netaddr);
  $sin = sockaddr_in($port,$netaddr);
  ($port,$netaddr) = sockaddr_in($sin);
  $sun = sockaddr_un($path);
  ($path) = sockaddr_un($sun);

        IPv6
  $netaddr = inet_pton($AF_family,$text_addr);
  $text_addr = inet_ntop($AF_family,$netaddr);
  $ipv6naddr = ipv6_aton($ipv6_text);
  $hex_text = ipv6_n2x($ipv6naddr);
  $dec_text = ipv6_n2d($ipv6naddr);

        CONSTANTS
  $constant = INADDR_ANY();
  $constant = INADDR_BROADCAST();
  $constant = INADDR_LOOPBACK();
  $constant = INADDR_NONE();
  $constant = AF_INET();
  $constant = AF_INET6();
  $constant = in6addr_any();
  $constant = in6addr_loopback();

        IPv6 conditional
  $trueif = havesock6();
  $trueif = isupport6();
  $sockaddr_in6_struct=pack_sockaddr_in6($port,ipv6naddr);
  ($port,$ipv6naddr)=unpack_sockaddr_in6($sockaddr_in6_struct);



DESCRIPTION

<B>Net::NBsocketB> provides a wrapper for <B>SocketB> and <B>Socket6B> to supply Non-Blocking sockets of various flavors;

    FUNCTIONS

o $sock = open_UDP();

Open an unbound UDP socket as below.

o $sock = open_udpNB();

Open and return an unbound non-blocking UDP socket object



  input:        [optional] address family (required for IPv6)
  returns:      pointer to socket object
                or undef on failure



o DEPRECATED $sock=bind2pp($sock,$port_path,$netaddr);

Bind to $port_path and an optional IPv4 bind address as returned by inet_aton (defaults to INADDR_ANY).



  input:        port or unix domain socket path,
                [optional] bind address
  returns:      socket on sucess, else undef;



Author’s note: This function was not well thought out and is now deprecated. It may be removed in future versions and is no longer in the EXPORT_OK array though it is still in the module and may be accessed with Net::NBsocket::bind2pp();

Does not support IPv6

o $listener = open_Listen($port_path,$netaddr,$af_family);

Open a blocking TCP listner as below.

o $listener = open_listenNB($port_path,$netaddr,$af_family);

Open and return a non-blocking TCP listener bound to $port_path and an optional IPv4 or IPv6 bind address as returned by inet_pton (defaults to INADDR_ANY or in6addr_any for AF_INET6).

Opens a unix-domain socket if port_path is a path instead of a number.

The user must set the appropriate UMASK prior to calling this routine.



  input:        port or unix domain socket path,
                [optional] bind address
                [optional] address family, default AF_INET
  returns:      pointer to listening socket
                object or undef on failure



o $client = connectBlk($port_path,$netaddr,$af_family);

Begin a blocking TCP connection as below.

o $client = connect_NB($port_path,$netaddr,$af_family);

Begin a non-blocking TCP connection to the host designated by $netaddr on $port_path, or to the unix domain socket designated by the path in $port_path. $netaddr is unused for unix domain sockets.



  input:        port number or unix domain socket path,
                netaddr as returned by inet_aton,
                [optional] address family (default AF_INET)
  returns:      socket object or
                undef on failure



o ($sock,$netaddr) = accept_Blk($srvsock);

Accept a connection and return a BLOCKING socket as below.

o ($sock,$netaddr) = accept_NB($srvsock);

Accept a connection from a remote client, return a non-blocking socket and the network address of the remote host as returned by inet_aton or the unix domain socket path if PF_INET or PF_UNIX respectively.



  input:        listening socket object
  returns:      client socket object,
                client packed netaddr or
                unix domain socket path

        on failure returns and empty array or undef



o $rv = set_NB($sock);

Set a socket to Non-Blocking mode



  input:        SOCK object pointer
  returns:      true on success or
                undef on failure



o $rv = set_so_linger($sock,$seconds);



  Set SO_LINGER on top level socket

  input:        sock object pointer, seconds
  returns:      true = success, false = fail



o $port = dyn_bind($sock,$netaddr,$af_family);

Attempt to bind a socket to the IP address and randomly assigned port number, in the range 49152 through 65535. Fails after 100 attempts



  input:        socket
                netaddr as returned by inet_pton
  returns:      port number or undef



IPv4 exported from Socket

o $netaddr = inet_aton($dot_quad);

Takes an argument of a hostname or dot quad ip address and returns a four octet packed network address.

o $dot_quad = inet_ntoa($netaddr);

Takes a 4 octet packed network address and returns a dot quad text string. Throws an error if fed a non-standard argument.

o $sin = sockaddr_in($port,$netaddr);

In SCALAR context, takes a port number and an IPv4 network address and returns a sockaddr_in structure.

o ($port,$netaddr) = sockaddr_in($sin);

In ARRAY context, takes a sockaddr_in structure and return the port and network address

o $sun = sockaddr_un($path);

In SCALAR context, takes its pathname and returns a sockaddr_un structure.

o ($path) = sockaddr_un($sun);

In ARRAY context, takes a sockaddr_un structure and returns its pathname.

IPv6 exported from Socket6 & NetAddr::IP::InetBase

o $netaddr = inet_pton($AF_family,$text_addr);

This function takes a dot quad IPv4 address or an RFC 1884 text IPv6 address and returns a 4 or 16 octet network address depending on the AF family argument.

o $text_addr = inet_ntop($AF_family,$netaddr);

This function takes a 4 or 16 octet network address depending on the AF family argument and returns a IPv4 dot quad or IPv6 text address respectively.

o $ipv6naddr = ipv6_aton($ipv6_text);

This function takes an RFC 1884 IPv6 text address and returns a 16 octet IPv6 network address.

o $hex_text = ipv6_n2x($ipv6naddr);

This function takes an IPv6 network address and returns an IPv6 hex text address. Throws an error if fed a non-standard argument.

o $dec_text = ipv6_n2d($ipv6naddr);

This function takes an IPv6 network address and returns and IPv6 text address with the last two octets in IPv4 dot quad representation.

    CONSTANTS

o $constant = INADDR_ANY(); INADDR_ANY;

This constant returns the wildcard address, equivalent to inet_aton(’0.0.0.0’);

o $constant = INADDR_BROADCAST()INADDR_BROADCAST;

This constant returns the wildcard address, equivalent to inet_aton(’255.255.255.255’);

o $constant = INADDR_LOOPBACK(); INADDR_LOOPBACK;

This constant returns the LOCALHOST address, equivalent to inet_aton(’127.0.0.1’);

o $constant = INADDR_NONE(); INADDR_NONE;

This constant returns the invalid address, equivalent to inet_aton(’255.255.255.255’);

o $constant = AF_INET(); AF_INET;

This constant returns the AF_INET family number.

o $constant = AF_INET6(); AF_INET6;

This constant retunrs the AF_INET6 family number for this operating system.

o $constant = in6addr_any(); in6addr_any;

This constant returns the IPv6 16 octet wildcard address, equivalent to ipv6_aton(’::0’);

o $constant = in6addr_loopback(); in6addr_loopback;

This constant returns the IPv6 16 octet LOCALHOST address, equivalent to ipv6_aton(’::1’);

    IPv6 Conditional

o $trueif = havesock6();

This function returns TRUE if Socket6 is loaded on this host, else returns FALSE.

o $trueif = isupport6();

This function returns TRUE if Socket6 is loaded on this host and the underlying operating system suports IPv6 sockets, else returns FALSE.

o $sockaddr_in6_struct=pack_sockaddr_in6($port,ipv6naddr);

If Socket6 is loaded on this host, in SCALAR context, takes a port number and an IPv6 network address and returns a sockaddr_in6 structure. If Socket6 is not loaded, returns undef.

o ($port,$ipv6naddr)=unpack_sockaddr_in6($sockaddr_in6_struct);

If Socket6 is loaded on this host, in ARRAY context, takes a sockaddr_in6 structure and returns the port number and IPv6 netaddr. If Socket6 is not loaded, returns and empty array.

DEPENDENCIES



        POSIX
        Socket
        NetAddr::IP



EXPORT_OK



        open_UDP
        open_udpNB
        open_Listen
        open_listenNB
        connectBlk
        connect_NB
        accept_Blk
        accept_NB
        set_NB
        set_so_linger
        dyn_bind
        inet_aton
        inet_ntoa
        sockaddr_in
        sockaddr_un
        inet_pton
        inet_ntop
        ipv6_aton
        ipv6_n2x
        ipv6_n2d
        INADDR_ANY
        INADDR_BROADCAST
        INADDR_LOOPBACK
        INADDR_NONE
        in6addr_any
        in6addr_loopback       
        AF_INET
        AF_INET6
        havesock6
        isupport6
        pack_sockaddr_in6
        unpack_sockaddr_in6



AUTHOR

Michael Robinton, michael@bizsystems.com

COPYRIGHT 2004 - 2014

Michael Robinton

All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of either:



  a) the GNU General Public License as published by the Free
  Software Foundation; either version 2, or (at your option) any
  later version, or

  b) the "Artistic License" which comes with this distribution.



This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details.

You should have received a copy of the Artistic License with this distribution, in the file named Artistic. If not, I’ll be glad to provide one.

You should also have received a copy of the GNU General Public License along with this program in the file named Copying. If not, write to the



        Free Software Foundation, Inc.
        59 Temple Place, Suite 330
        Boston, MA  02111-1307, USA



or visit their web page on the internet at:



        http://www.gnu.org/copyleft/gpl.html.



SEE ALSO

POSIX, Socket

POD ERRORS

Hey! <B>The above document had some coding errors, which are explained below:B>
Around line 308: ’=item’ outside of any ’=over’
Around line 549: Expected ’=item *’
Around line 584: You forgot a ’=back’ before ’=head2’
Around line 586: ’=item’ outside of any ’=over’
Around line 610: You forgot a ’=back’ before ’=head2’
Around line 612: ’=item’ outside of any ’=over’
Around line 633: You forgot a ’=back’ before ’=head2’
Around line 635: ’=item’ outside of any ’=over’
Around line 667: You forgot a ’=back’ before ’=head2’
Around line 669: ’=item’ outside of any ’=over’
Around line 687: You forgot a ’=back’ before ’=head1’
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 NBSOCKET (3) 2014-01-27

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.