想起了一件事:
今天与一个朋友试了几下代码.我这里没有问题:
他那里出现了问题:
谁帮我解一下.有三个Winsock 都连上了.以下是代码:Data as string
Data="fvflove"
Winsock1.SendData Data
Winsock2.SendData Data
Winsock3.SendData Data我的没有问题,都能发出去.
但是他的却只能发出第三个.(即第三个才接收到)
'******************************
于是改:Data as string
Data="fvflove"
Winsock1.SendData Data
doevents '不好使
Sleep 1000 '不好使
msgbox "fvflove" '都好使了. 
Winsock2.SendData Data
Winsock3.SendData Data'************************只有他的电脑上才出现问题.我的和别的电脑上都没有发现.

解决方案 »

  1.   

    我这样解释:
    doevents---无用,因为程序根本就不拥塞;
    Sleep 1000--停1秒,
    msgbox "fvflove--可能很长;
    但根本问题是Sleep 与msgbox对系统的影响并不一样
    有一个程序msgbox使Timer停了,MessageBox就不停,API就是不一样
      

  2.   

    根本就没有Timer
    就是一个按扭,发送聊天信息去三个用户的.
    比如A发送信息去其它的用户.(因为有三个有同一个聊天室,所以给每一个用户都发送一次.但是只有一个用户收到了信息,其它的二个都没有收到.)
      

  3.   

    我知道没有Timer,我是通过这个例子说明,API的机制和VB不同,你的Sleep是API
    你的Msgbox是VB的模式对话框
      

  4.   

    "只能发出第三个"跟"第三个才接收到"并不是一回事.建议这样测试:
    Data as string 
    Data=cstr(now)
    Winsock1.SendData Data
    me.caption=me.caption+cstr(Data)+","
    doevents
    Data=cstr(now)
    Winsock2.SendData Data
    me.caption=me.caption+cstr(Data)+","
    doevents
    Data=cstr(now)
    Winsock3.SendData Data 
    me.caption=me.caption+cstr(Data)+","
      

  5.   

    一样的,
    还是第三个能接收到.
    因为加上 msgbox 才会都收到.
    而且 me.caption,都没有错.
    第一个+第二个+第三个.只有他那台才会这样,别的二台都没有问题.
      

  6.   

    发送端或接收端有没有杀毒软件或防火墙之类屏蔽了端口?找个嗅探器(如我一般用的WSockExpert)抓包看看.
      

  7.   

    改成下面的看一下吧:
    Data as string 
    Data="fvflove" 
    Winsock1.SendData Data 
    DoEvents 
    Winsock2.SendData Data 
    DoEvents 
    Winsock3.SendData Data 
    DoEvents 
    每发送一次数据都要加DoEvents