Private Sub WinsockClient_DataArrival(ByVal bytesTotal As Long)
   
    Dim CH()     As Byte
    Dim Test()   As Integer
    Dim I        As Integer
    Static cmd   As Byte If (bytesTotal > 0) Then  ' If there is any data...
        
        WinsockClient.GetData CH, vbByte + vbArray, bytesTotal
        
       'CH = Buf
       'Text2.Text = CH
 
txtt = ""        For I = 0 To bytesTotal - 1
         
         
             If Chr(CH(I)) <> Chr(13) Then            '忽律回车符                       txtt = txtt & Chr(CH(I))                       End If
                
            Debug.Print "接受到的数据:"; CH(I)
              Debug.Print "转换计算后的字符数据:"; Chr(CH(I))
                       
         
        Next I
        
        
         
        
        FEND = Split(txtt, (Chr(10)))
  现在出现丢包现象。。着急啊。。感谢各位大大。。
~~~~~~~~~

解决方案 »

  1.   

    UDP丢包是可能的如果是TCP可以去检测Content-Length的长度另外对大数据来说DataArrival应该触发多次收完以后在去处理数据而不是在DataArrival事件中处理
      

  2.   

    如果是TCP,绝对不可能丢包。如果是UDP,绝对可能丢包
    对于TCP,要注意几个要点:1. 一次发送不代表一次接收,你发送一次,可能触发多次事件,也可能发送多次,只触发一个arrival事件
    2. 一个send可能只发送send所要求的一部分字节,发送者有责任检查send的返回值,并把剩余部分发送出去
      

  3.   

    UDP 丢包很正常尝试使用TCP