Did you remember that you must call sockread from within a loop? Meaning, a single sockread is not guaranteed to read all the data.
Something like: (taken from the helpfile but modified to use local variables and a while() loop)
on 1:sockread:testing:{
var %temp
if ($sockerr > 0)
return
while ($true) {
sockread %temp
if ($sockbr == 0)
break
if (%temp == $null)
break
echo %temp
}
}