For i = 1 To 10
         DoEvents
         Winsock1.SendData "第" & i & "信息" '只对一个客户机发送10次
      Next i服务器同时向Winsock1连接的客户机,发送10条信息.为什么客户机,只收到第一条,而又后面所有信息都收不到.
非要把DoEvents改成Msgbox "" 然后服务器发送信息时会停一下,然后一条,一条的地发送

解决方案 »

  1.   

    For i = 1 To 10
             
             Winsock1.SendData "第" & i & "信息" '只对一个客户机发送10次
    DoEvents
          Next i
      

  2.   

    还有一种方法
    For i = 1 To 10
             
             Winsock1.SendData "第" & i & "信息" & "!@#$!@#$!@#" '只对一个客户机发送10次
    DoEvents
          Next i
    接收时候split(str,"!@#$!@#$!@#") 手动分割
      

  3.   

    在客户端自己开辟缓存,进行数据接收和操作分步进行,同时将数据发送的尾部加上特殊符号,以此来分割每次发送的数据。
    如下代码仅供参考,"{End$}"表示结束
    Private Sub wskServer_DataArrival(index As Integer, ByVal bytesTotal As Long)
       '¼àÌý¶Ë¿ÚµÄ·´À¡
       '----------------------------------------------------------------
       Dim strCommand As String
       Dim strValue As String
       Dim strTmpValue As String
       Dim i As Long
          wskServer(index).GetData strCommand
          strTmpValue = strCommand
          i = InStr(1, strTmpValue, "{End$}")
         Do While i > 0
            strValue = strScokCommand(index) & Mid(strTmpValue, 1, i - 1)
            strScokCommand(index) = ""
            DoGetMessage index, strValue  '进行数据处理
            strTmpValue = Mid(strTmpValue, i + 6)
            i = InStr(1, strTmpValue, "{End$}")
       Loop
       If strTmpValue <> "" Then strScokCommand(index) = strScokCommand(index) & strTmpValue
       lngConnectTime(index) = 0
    End Sub
      

  4.   

    引用SleepEx API函數
    For i = 1 To 10
             SleepEx 20,False  (延時20ms)
             Winsock1.SendData "第" & i & "信息" '只对一个客户机发送10次
    Next i
      

  5.   

    在senddata后做好家上一个doevents