在vb6.0中使用winsock控件进行tcp/ip协议通讯时,在dataarrival事件发生时,用getdata接到的数据不完整,只是发过来的一部分,这是怎回事???

解决方案 »

  1.   

    dataarrival这个事件接收数据是分段执行的,当你senddata出的数据大于bytestotal的时候,winsock会自动重复触发该事件,每次接收“长度=bytestotal”的字节数,如果你是把收到的数据存入文件中的话,在写入文件时用追加的方法,问题应该可以解决。
      

  2.   

    收到数据太大了会分几个包来传的,我今天刚做了个测试:(我所收的网页大约20K)
    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        On Error Resume Next
        Dim str1 As String
        Winsock1.GetData str1, , bytesTotal
        Text1.Text = Text1.Text + str1
    End Sub
    结果发现数据不停的追加到TEXT1上.