in reply to Getting stuck reading from a socket

I finally got it to work with the code structure
use IO::Socket; use IO::Select; $sock = new IO::Socket::INET ( PeerAddr => $$display{'dp_ipaddress'}, PeerPort => $$display{'dp_tcpport'}, Proto => 'tcp', Blocking => 0, Timeout => 10, ); my $sel = IO::Select->new($sock) or die "IO::Select error $!"; if ($sel->can_write(10)) { $sock->autoflush(1); . $msg = $msg . CheckSum($msg); $sock->send($msg); my $resp; if ($sel->can_read(10)) { $sock->recv($resp, 1024); } } else { print "Error: $@: $!\n"; } . .