PRB: recv() w/MSG_PEEK Always Returns Wrong Buffer Size (140263)
The information in this article applies to:
- Microsoft Win32 Software Development Kit (SDK) 3.51
- Microsoft Win32 Software Development Kit (SDK) 4.0
This article was previously published under Q140263 SYMPTOMS
An Application that uses the Winsock 1.1 call recv(..., MSG_PEEK)
repeatedly, will always receive the amount of data as in the first call.
This amount only changes when you call recv without MSG_PEEK.
CAUSE
This is the result of a performance optimization within AFD.SYS.
RESOLUTION
recv() with MSG_PEEK should generally be avoided. It is a very inefficient
way to retrieve data and definitely not recommended if you care about
performance. A much better solution would be to simply receive the data
into user buffers and use it directly from there.
STATUS
This behavior is by design.
Modification Type: | Major | Last Reviewed: | 3/8/1999 |
---|
Keywords: | kbAPI kbnetwork kbprb kbtshoot kbWinsock KB140263 |
---|
|