WINSOCK.DLL Asynch. Send() Doesn't Signal WSAEWOULDBLOCK

ID: Q134254


The information in this article applies to:
  • Microsoft LAN Manager, version 2.2
  • Microsoft Windows for Workgroups version 3.11


SYMPTOMS

Applications issuing asynchronous send() calls to LAN Manager's real mode TCP/IP WINSOCK.DLL fail.


CAUSE

The WINSOCK.DLL file included in the real mode TCP/IP protocol from LAN Manager and Windows for Workgroups 3.11 does not "set errno = WSAEWOULDBLOCK" and "SOCKET_ERROR = -1" when the out buffer is full on send() calls to an asynchronous socket.


RESOLUTION

Use Microsoft TCP/IP-32 for Windows for Workgroups, a protected mode VxD TCP/IP and its accompanying WINSOCK.DLL or test for the condition where send() on an asynchronous socket returns 0 bytes written and periodically issue select() on the socket until your application is able to send() again.


STATUS

Microsoft has confirmed this to be a problem in LAN Manger 2.2b and Windows for Workgroups 3.11. A fix to this problem is in development, but has not been regression-tested and may be destabilizing in production environments. Microsoft does not recommend implementing this fix at this time. Contact Microsoft Product Support Services for more information on the availability of this fix.

Additional query words: 2.2c, 2.2b, 2.20

Keywords :
Version : :2.2; WINDOWS:3.11
Platform : WINDOWS
Issue type :


Last Reviewed: November 10, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.