加上一个do until ,在其中分解数据,分解完后剔除,
until len(sdata)=0
  你的代码
  sdata=mid(sdata,****)
loop

解决方案 »

  1.   

    使用Winsock1.PeekData,可以只偷看数据而不清除,看到符合条件才使用GetData
      

  2.   

    Private Sub Command1_Click()
    tcpClient.SendData ":text1#>" + Text1(0).Text + "#>" & vbtab
    tcpClient.SendData ":text2#>" + Text1(1).Text + "#>" & vbtab
    tcpClient.SendData ":text3#>" + Text1(2).Text + "#>" & vbtab
    tcpClient.SendData ":text4#>" + Text1(3).Text + "#>"
    End Sub但服务器端收到的是4个数据连在一起的1个数据.Private Sub tcpServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim sData As String
    dim sRow() as string
    dim i as integer   tcpServer(Index).GetData sData
    sRow() = split(sData,vbTab)for i=0 to ubound(srow())
    Select Case Split(sRow, "#>")(0)
       Case ":text1"
          Text1(0).Text = Split(sData, "#>")(1)
       Case ":text2"
             Text1(1).Text = Split(sData, "#>")(1)   Case ":text3"
             Text1(2).Text = Split(sData, "#>")(1)   Case ":text4"
             Text1(3).Text = Split(sData, "#>")(1)   End Select
    next i
    End Sub怎样解决呢?
      

  3.   

    可以有三种方法..用时钟控件..用API函数Sleep...数据发送中加个DoEvents
      

  4.   

    若发送的东西不大的话,如一行文字,SendData 后加个 DoEvents 就没事了发送体积大的数据可以使用 Winsock 控件的 SendComplete 事件