VB6 + Winsock 的问匙,达人请进!感谢万分!

来源:百度知道 编辑:UC知道 时间:2024/06/15 13:26:52
我使用VB6 + Winsock 制作了一个C/S结构的信息发布系统,如果单个客户端使用的话,可以用。有间隔的单个打开多个客户端,也可以。可是如果使用BAT文件快速的打开多个客户端,就会出错。错误是Winsock收到的消息不正确或丢失。请问如何改正?

服务器端的相关代码:

rs.open "****",conn,1,3
while not rs.eof
DoEvents
sckServer(SocketIndex).SendData rs("xxxx")
rs.movenext
wend

客户端的相关代码:

DoEvents
sckClient.GetData s

这个s慢慢开的时候,是正常的。可是如果大量打开,就会出错。s内容就可能为空。

而且发现,上面的Doevents,不论是少一个或多一个,就连单机使用都会出错。请问该怎么解决?

www.csdn.net问吧
http://community.csdn.net/Expert/ForumList.asp?typenum=1&roomid=5107

改用多线程重写,因为TCP通信有时延,单线程只能等待上一个连接关闭才能正常进行下一次通信。

这个问题我也遇到过,用循环是不行的,我用了一个笨办法用timer控件触发winsock的事件