Microsoft KB Archive/140263

{|
 * width="100%"|

PRB: recv w/MSG_PEEK Always Returns Wrong Buffer Size

 * }

Q140263

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK), versions 3.51, 4.0

-

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.

Keywords : kbnetwork kbtshoot kbAPI kbOSWinNT351 kbOSWinNT400 kbSDKPlatform kbWinsock kbGrpDSNet

Issue type : kbprb

Technology : kbWin32SDKSearch kbAudDeveloper kbSDKSearch kbWin32sSearch kbWin32SDK400 kbWin32SDK351