$sockclient = new IO::Socket::INET (PeerAddr => $remote_host, PeerPort => $remote_port, Proto => 'tcp', ); die "Socket could not be created. Reason: $!\n" unless $sockclient; #### foreach my $hostvar (@remote_host) { $sockserver = new IO::Socket::INET (LocalHost => $hostvar, LocalPort => $remote_port, Proto => 'tcp', Listen => 5, Reuse => 1 ) or warn "Socket could not be created in $hostvar. Reason: $!" unless $sockserver; } while ($new_sock = $sockserver->accept()) { while (defined ($buf = <$new_sock>)) { # do something with $buf, and ask confirmation, input #etc. from the client and again come back ... in a loop. } } close ($sockserver); }