Fix socket.recv() behavior for TCP sockets
Fix socket.recv() behavior for TCP sockets

For TCP sockets, one call to recv() may not return the entire message.
If the first reply is not as long as the expected message size, further
results are accumulated in a buffer until the socket signals EOF.

tiran/kdcproxy,npmccallum/kdcproxy,latchset/kdcproxy