read_all
return  bytes_received when we get a 0 return value, don't return 0 D: