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)
Code:
on 1:sockread:testing:{
   var %temp
   if ($sockerr > 0) 
      return
   while ($true) {
      sockread %temp
      if ($sockbr == 0) 
         break
      if (%temp == $null) 
         break
      echo %temp
   }
}