NAME

Net::NBsocket -- Non-Blocking Sockets

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
            inet_aton
            inet_ntoa
            sockaddr_in
            sockaddr_un
      );

      $sock = open_UDP();
      $sock = open_udpNB();
      DEPRECATED $sock = bind2pp($sock,$port_path,$netaddr);
      $listener = open_Listen($port_path,$netaddr);
      $listener = open_listenNB($port_path,$netaddr);
      $rv = set_NB(SOCK);
      $rv = set_so_linger(HANDLE,$seconds);
      $client = connectBlk($port_path,$netaddr);
      $client = connect_NB($port_path,$netaddr);
      ($sock,$netaddr) = accept_Blk(SERVER);
      ($sock,$netaddr) = accept_NB(SERVER);
      $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);

DESCRIPTION

Net::NBsocket provides a wrapper for Socket to supply Non-Blocking sockets of various flavors;

          input:        none
          returns:      pointer to socket object
                        or undef on failure
          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();
        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
          returns:      pointer to listening socket
                        object or undef on failure
          input:        SOCK object pointer
          returns:      true on success or
                        undef on failure

$rv = set_so_linger(*HANDLE,$seconds);

Set SO_LINGER on top level socket

          input:        *HANDLE, seconds
          returns:      true = success, false = fail
          input:        port number or unix domain socket path,
                        netaddr as returned by inet_aton
          returns:      socket object or
                        undef on failure
          input:        listening socket object
          returns:      client socket object,
                        client packed netaddr or
                        unix domain socket path
                        or an emtpy array on failure

DEPENDENCIES

            POSIX
            Socket

EXPORT_OK

            open_UDP
            open_udpNB
            open_Listen
            open_listenNB
            connectBlk
            connect_NB
            accept_Blk
            accept_NB
            set_NB
            set_so_linger
            inet_aton
            inet_ntoa
            sockaddr_in
            sockaddr_un

AUTHOR

Michael Robinton, michael@bizsystems.com

COPYRIGHT

Copyright 2004 - 2006, Michael Robinton & BizSystems This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

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 the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

SEE ALSO

the POSIX manpage, the Socket manpage