I noticed a message back in March which I think referenced this same problem http://rawmaterialsoftware.com/juceforum/viewtopic.php?t=2727&highlight=streamingsocket ( i think). But what appears to be happening is that unless the size of an individual packet is the same or greater than the maxBytesToRead argument to the read() method, read() will not return and will not write to the destination buffer. This is unless several packets have been sent which cumulatively equal the size of maxBytesToRead. Looking at the code for readSocket in juce_Socket.cpp this seems to be the logic being expressed as it continues to read while the bytesRead < maxBytesToRead.
If this is what is meant then perhaps maxBytesToRead should be changed to minBytesToRead and another method could be made available that does what might be more commonly expected which is to block until a packet is received at which time it is written into the destBuffer up to maxBytesToRead.