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;
$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);
All above exported from Socket in the EXPORT_OK array.
$sock = open_UDP();
Open an unbound UDP socket as below.
$sock = open_udpNB();
Open and return an unbound non-blocking UDP socket object
input: none returns: pointer to socket object or undef on failure
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();
$listener = open_Listen($port_path,$netaddr);
Open a blocking TCP listner as below.
$listener = open_listenNB($port_path,$netaddr);
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_NB(*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 = connectBlk($port_path,$netaddr);
Begin a blocking TCP connection as below.
$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_Blk(*SERVER);
Accept a connection and return a BLOCKING socket as below.
($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_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
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 226:
Expected '=item *'