What it is:

	modules Net::Gen, Net::Inet, Net::TCP, Net::UDP, and Net::UNIX.
	Net::Gen is not a good name, I know that, but what's
	in it really belongs in Socket, I think.  In any case,
	I'm open to votes for a better name.

What's different from other offerings:

	Layering keeps PF_INET things in Inet, and only socket-generic
	stuff is in Gen.

	Friendly {g,s}etsockopt.

	A TIESCALAR interface for really simple socket communications.

	Properly handles connects to hosts with multiple addresses as
	long as gethostbyname() returns more than one address.  (RFC 1123)

What's still missing:

	Support for non-blocking sockets is untested at best.
	The select, fhvec, ioctl, and fcntl methods are crude hacks.

	A proper set of regression & verification tests.

	Proper handling of timeout options.

	Finished integration with 5.003_13 & later features.

	Probably several other things I won't have missed (yet).


The .pm files themselves are pod-ified (somewhat), with a catalogue of
the methods.  I've found them to be most readable after something like

	pod/pod2man ext/Net/Gen/Gen.pm | nroff -man | less -is

Your mileage may vary.

I'm not a tech. writer, nor do I usually play one on the net.  The
documentation could still use a lot of work, I'm sure.

Making it work requires perl 5.003_93 or later.

A simple test script:

	#!/usr/bin/perl

	use Net::TCP;

	$f = new Net::TCP 0, 'finger';
	die "Can't establish finger socket: $!\n" unless $f;

	put $f "-s\n";
	$f->shutdown(1);
	print $line while defined($line = getline $f);
	undef $f;

	die "Can't tie to finger socket: $!\n" unless
		tie $f,'Net::TCP',0,'finger';

	$f = "-s\n";
	tied($f)->shutdown(1);
	print $line while (defined $line=$f);
	untie $f;

Should be the same (on most BSD-ish systems, anyway) as
	finger ; finger
to the shell.


Anyway, bug reports & feature requests to me (spider@Orb.Nashua.NH.US).
