NAME

Net::NBsocket -- Non-Blocking Sockets

SYNOPSIS

  use Net::NBsocket qw(
        open_udpNB
	open_listenNB
	connect_NB
	accept_NB
	set_NB
	set_so_linger
  );

  $sock = open_udpNB();
  $listener = open_listenNB($port_path,$netaddr);
  $rv = set_sockNB(*SOCK);
  $rv = set_so_linger(*HANDLE,$seconds);
  $client = connect_NB($port_path,$netaddr);
  ($sock,$netaddr) = accept_NB(*SERVER);
    

DESCRIPTION

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

  • $sock = open_udpNB();

    Open and return a non-blocking UDP socket object

      input:	none
      returns:	pointer to socket object
    		or undef on failure
  • $listener = open_listenNB($port_path);

    Open and return a non-blocking TCP listener bound to $port_path and an optional IPv4 bind address as returned by inet_aton (defaults to INADDR_ANY).

    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
  • $rv = set_sockNB(*SOCK);

    Set a socket to Non-Blocking mode

      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
  • $client = connect_NB($port_path,$netaddr);

    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
      returns:	socket object or
    		undef on failure
  • ($sock,$netaddr) = accept_NB(*SERVER);

    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
    		or an emtpy array on failure

DEPENDENCIES

POSIX
Socket

EXPORT_OK

        open_udpNB
	open_listenNB
	connect_NB
	accept_NB
	set_NB
	set_so_linger

AUTHOR

Michael Robinton, michael@bizsystems.com

COPYRIGHT

Copyright 2004, 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.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 143:

Expected '=item *'