#!/usr/bin/perl -w require 5.003; use Socket; use strict; my ($rendezvous, $line); $rendezvous = shift || '/tmp/catsock'; socket(SOCK, PF_UNIX, SOCK_STREAM, 0) or die "socket: $!"; connect(SOCK, sockaddr_un($remote)) or die "connect: $!"; while ($line = ) { print $line; } exit; ***** #!/usr/bin/perl -Tw require 5.003; use strict; use Socket; use Carp; BEGIN { $ENV{PATH} = '/usr/ucb:/bin' } my $NAME = '/tmp/catsock'; my $uaddr = sockaddr_un($NAME); my $proto = getprotobyname('tcp'); socket(Server,PF_UNIX,SOCK_STREAM,0) or die "socket: $!"; unlink($NAME); bind (Server, $uaddr) or die "bind: $!"; listen(Server,SOMAXCONN) or die "listen: $!"; logmsg "server started on $NAME"; $SIG{CHLD} = \&REAPER; for ( ; $paddr = accept(Client,Server); close Client) { logmsg "connection on $NAME"; spawn sub { print "Hello there, it's now ", scalar localtime, "\n"; exec '/usr/games/fortune'; die "can't exec fortune: $!"; }; }