buffer=4096 
Do While Len(szSendMe) >= buffer
              Dim szSendMeTemp As String
              szSendMeTemp = Left$(szSendMe, 4096)
              szSendMe = Mid$(szSendMe, 4097)
              WinsockSendData.SendData szSendMeTemp
Loop
if szsendMe<>"" then
   WinsockSendData.SendData szSendMe
end if

解决方案 »

  1.   

    没办法,当你两个数据间隔时间太短,你的winsock还没来得及反应收取,第二块就到了缓冲区
      

  2.   

    to pp616:我的邮箱是[email protected]
    非常感谢大家的帮助,问题解决后一定给大家加分
      

  3.   

    vb的winsock我不是很清楚。但一般的socket编程,如果使用tcp协议,任何一次传输需要进行三次握手,你连续的发送数据,如果没有报缓冲区错的话,第二个数据包可能覆盖了第一个数据包;如果使用的是udp协议,就不会有问题。看看msdn,winsock用的是什么协议啊?