You could try using the IOCtl member function to determine the number of bytes that can be read at one time using the FIONREAD command parameter.

You could also call Receive multiple times waiting for the return value (bytes read) to equal something less than your buffer size (nBufLen param)

Hope this helps,

- Nigel