我使用for....next连续发大数据量,但是却发现发送的数据不是自己要求的,请问是否是因为连续发送大数据量server来不及反映引起的吗?如果是该如何处理?谢谢!

解决方案 »

  1.   

    会的
    最好在SendComplete事件触发后再发送第2个数据
      

  2.   

    '着要看具体问题的,下面只是一个简单的例子 我也没调试过 
    Private m_strBuff() As String '发送数据的缓冲区
    Private m_CurBuffIndex As Integer '当前发送第几个数据Private Sub Command1_Click()
        '假设所有要发送的数据都存在m_strBuff数组里面了
        m_CurBuffIndex = 0 '先发送第一个
        Winsock1.SendData m_strBuff(m_CurBuffIndex)
    End SubPrivate Sub Winsock1_SendComplete()
        '发送完毕 接着发
        m_CurBuffIndex = m_CurBuffIndex + 1
        If m_CurBuffIndex <= UBound(m_strBuff) Then
            Winsock1.SendData m_strBuff(m_CurBuffIndex)
        Else
            'm_strBuff数组的数据全部发送完毕
            '初始化m_CurBuffIndex m_strBuff
            m_CurBuffIndex = 0
            ReDim m_strBuff(0)
        End If
    End Sub
      

  3.   

    http://community.csdn.net/Expert/topic/3520/3520329.xml?temp=.8927729
    帮我看看这个问题
      

  4.   

    借个地方问个问题
    我试了用数组的方式来进行连续的sendData,但是这个连续的过程也只限于winsock发生close的事件以前
    是不是winsock.DataArival以后就会发生winsock_close的?
    那这样的话,就不能以一个session值连续访问一个网站的不同页面了?
      

  5.   

    该问题我已经解决了,谢谢各位!
    方法是:首先发送,发送完了以后,如果winsock.dataarrival处理以后再下次发送,如果winsock.dataarrival没有处理完毕,则让循环发送的发宋处等待.
      

  6.   

    这就是ms winsock不完整的地方,
    其它第三方控制提供一个类似的would block信息用于send data前同步.