#!/usr/local/bin/perl use Socket; $lport = shift; socket(INC, PF_INET, SOCK_STREAM, $protocol) || die "socket:$!"; setsockopt (INC, SOL_SOCKET, SO_REUSEADDR, pack ("l", 1)) || die "setsockopt:$!"; srand(time|$$); # Try to bind using random port numbers (1024-61023) until we get one. while (!$lport || !bind(INC,sockaddr_in($lport,INADDR_ANY))) { $lport=int(rand(60000))+1024; } print ">> Bound to port: $lport = ", join(",",unpack("CC",pack("n",$lport)))," <<\n"; listen(INC,1) || die "listen:$!"; my $paddr = accept(OUT,INC) || die "accept:$!"; my($port,$iaddr) = sockaddr_in($paddr); print ">> connection from ",inet_ntoa($iaddr)," <<\n"; $|=1; print while ( $_= ); close(OUT); exit 0;