favor sendall over send when working with non-blocking sockets