my ($local_port) = @ARGV; # When on Win32, nap until OS clears its port. my $i = 50; while ($i && ($^O =~ /Win32/i)) { my @netstat = split "\n", `netstat.exe -a -p tcp`; print "Waiting up to $i passes...\n"; foreach (@netstat) { next unless $_ =~ $local_port; print "$i: \t$_\n"; sleep 60 if $_ =~ /(ESTABLISHED|LISTENING|WAIT)/; } --$i; }