如题

解决方案 »

  1.   

    tztz520(午夜逛街),,,但如果,,我必须发送这么快,,,又不想有如上问题,,,那怎么办zyg0(影子(努力吃饭中)),,,不是这么说,,一帖一问,,, 这是正常的规巨
    看过你的方法
      

  2.   

    zyg0(影子(努力吃饭中)) 就这里吧很简单,在每一个字符串后面+上1个固定的标示,要特殊
    然后再接受的时候做字符串才分
    比如要发
    aaaaa
    就"aaaaa" & "!~!@#$%^*&*((_)" 
    然后接受的时候先split(str,"!~!@#$%^*&*((_)")
    然后用循环作,就解决了
      

  3.   

    zyg0(影子(努力吃饭中)) 就是说,,只能通过,,自己人工再处理,,不是说,,有办法避免这种并发   (要避免,发送端,,发送的慢一点就是了)是不是这个意思
      

  4.   

    \\aaaaa
    就"aaaaa" & "!~!@#$%^*&*((_)" 
    然后接受的时候先split(str,"!~!@#$%^*&*((_)")\\你上面的代码也可以解决.
    如果慢一点发送的话,可以在发送端加一个延迟Public Sub Delay(PauseTime As Single)'这是延迟函数
    Dim Start As Single
    Start = Timer
    Do While Timer < Start + PauseTime
        DoEvents 
    Loop
    End Subdim i as long
    for i=1 to 10
        Winsock1.SendData str(i)'发送
        Delay 0.5'这个延迟的时间你自己掌握
    next i
      

  5.   

    因为网络的状况你不能控制,winsocket的senddate并不意味着网卡的发送命令,而是你把你要提交的发送信息提交给网卡(具体什么层我没记住),反正就是缓冲区,然后网卡在根据系统空闲时间发送,接收的getdate也是一样的
    这就是为什么要每次发送用doevents,也是出现并发的原因,
    网卡还没有发消息,你就给缓冲区输入的新的资料,资料就冲掉了以前的资料,发送就少了1次
    或者和以前的资料一起发送,或者1起接受就产生了并发我表达能力不怎么强,这些都是我看网上的资料明白的,要是不清楚就慢慢看吧,要是不对最好给我指出,我好学习