BUG: Winsock Control SendData Only Works Over the Latest Connection
--------------------------------------------------------------------------------
The information in this article applies to:
Microsoft Visual Basic Professional and Enterprise Editions, 32-bit only, for Windows, versions 5.0, 6.0
--------------------------------------------------------------------------------
SYMPTOMS
For a 32-bit Visual Basic application with multiple Winsock Control objects that maintain TCP connections to other socket applications, SendData() only works over the most recently established connection. This behavior is reproducible on versions prior to and include Microsoft Visual Studio SP3.
CAUSE
The event messages associated with each SendData() are flushed from the message queue by the latest socket connection. This causes data to queue up and with no event messages available to start the data send process for previous connections.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.
Please contact Microsoft Technical Support if you need to know the current status of this bug.
For more information about eligibility for no-charge technical support, see the following article in the Microsoft Knowledge Base:
Q154871 Determining If You Are Eligible for No-Charge Technical Support
MORE INFORMATION
To reproduce the problem assuming an application maintains an array of three Winsock Control objects, each of controls has established a connection with its peer side over TCP. Label the connections as C1, C2, and C3 based on the order the connections are established, with C3 as the most recently established connection. If you attempt to do the following:
Private Sub cmdSendData_Click()
Dim i As Long<BR/><BR/>
For i = 1 To iIndex<BR/>
If (socks(i).State = sckConnected) Then
socks(i).SendData txtSendData.Text
End If
Next i
End Sub
Only the peer side of C3 connection get the messages. If you disconnect C3, the peer side of C2, which becomes the most recent connection at the time, will start to receive messages intended for it.
REFERENCES
For additional information, please see the following article(s) in the Microsoft Knowledge Base:
Q183987 PRB: SendData Method Generates Error 40006
Additional query words:
Keywords : kbnetwork kbCtrl kbSDKPlatform kbSDKWin32 kbVBp500 kbVBp600 kbWinsock kbDSupport kbGrpNet
Version : WINDOWS:5.0,6.0
Platform : WINDOWS
Issue type : kbbug
Last Reviewed: December 2, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.