and have been unable to reproduce the error. Thank you! ++my $total_bytes_to_read; sysread $sock, $total_bytes_to_read, 20; my $total_bytes_read = 0; my $read_string = ''; while ($total_bytes_read < $total_bytes_to_read) { my $buffer; my $bytes_read = sysread $sock, $buffer, ($total_bytes_to_read + - $total_bytes_read); $total_bytes_read += $bytes_read; $read_string .= $buffer; } $total_bytes_to_read == $total_bytes_read or die("Tried to read $total_bytes_to_read bits but only got $to +tal_bytes_read bits\n"); return $read_string;
PS: I will abstract the loop, as I realise the other sysread here could suffer the same problem
Update: Just seen your code. I shall be nicking that :)
Update2: Worked a treat with an extra curly bracket and two semi-colons :)
In reply to Re^2: Missing data in IO::Socket::INET sysread/syswrite
by reasonablekeith
in thread Missing data in IO::Socket::INET sysread/syswrite
by reasonablekeith
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |