PERL_CLI.html



<html><body><pre>
#!/usr/bin/perl -w
# el cliente

        ($them,$port) = @ARGV;
        $port = 2348 unless $port;
        $them = 'scfie.eie.umich.mx' unless $them;   #localhost' unless $them;

        $SIG{'INT'} = 'dokill';
        sub dokill { kill 9,$child if $child; }

        use Socket;

        $sockaddr = 'S n a4 x8';
        chop($hostname = `hostname`);
 
        ($name, $aliases, $proto) = getprotobyname('tcp');
        ($name, $aliases, $port) = getservbyname($port, 'tcp')
            unless $port =~ /^\d+$/;
        ($name, $aliases, $type, $len, $thisaddr) =
                        gethostbyname($hostname);
        ($name, $aliases, $type, $len, $thataddr) = gethostbyname($them);

        $this = pack($sockaddr, &AF_INET, 0, $thisaddr);
        $that = pack($sockaddr, &AF_INET, $port, $thataddr);

      print "Esta direccion: $thisaddr\n";
      print "En cliente, conectar a: $them por el puerto: $port\n";

        socket(S, &PF_INET, &SOCK_STREAM, $proto) || die "socket: $!";
        bind(S, $this) || die "bind: $!";
        connect(S, $that) || die "connect: $!";

        select(S); $| = 1; select(STDOUT);

        if ($child = fork) {
            while (<STDIN>) {
                print S;
            }
            sleep 3;
            #do
              dokill();
        }
        else {
            while (<S>) {
                print;
            }
        }
        close(S) || die "close: $!";
        exit;
</pre></body></html>