#!/usr/bin/perl #listener is dieing after 5 lines # it send a line back as soon it has got one my $SOCKET =call(); $|++; my $i = 0; while (defined(my $line = <$SOCKET>)) { print $line; die if (++$i >= 5); print $SOCKET "Hallo from Austria from pid: $$\r\n"; } sub call { #: connect to socket use Socket; my ($remote,$port, $iaddr, $paddr, $proto, $line); $remote = shift || 'localhost'; #: ip-Adr of the pc; default localhost $port = shift || 1234; #: port to use for connetion default port: 2222 if ($port=~ /\D/) { $port = getservbyname($port, 'tcp') } die "No port" unless $port; $iaddr = inet_aton($remote) || die "no host: $remote"; $paddr = sockaddr_in($port, $iaddr); $proto = getprotobyname('tcp'); socket (SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; # connect(SOCK, $paddr) || die "$remote,$port,$proto => connect: $!"; connect(SOCK, $paddr) || return 0; #"$remote,$port,$proto => connect: $!"; print "calling $remote \@ $port\n"; select((select(SOCK),$|++)[0]); return \*SOCK; ##: Ref. to handel to the socket }