winsock与多线程的问题,急
我用一个winsock做监听,客户请求连接时产生ConnectionRequest事件,在当中我产生一个线程,线程在模块中,在线程中我用load sckAccept(index)产生一个winsock控件,并且初始化它,初始化之后我用form1.sckAccept(index).connect语句连接那个客户端,出现“对象'connect'的方法IMSWinsockControl失败”,请问是什么原因?如何解决?是不是winsock根本不支持多线程。急,谢谢! 问题点数:50、回复次数:8Top
1 楼lc_mtt(柠檬把大飞猪裤子一脱...被大飞猪投诉了)回复于 2005-12-03 12:51:58 得分 12
不如用ActiveX实际,VB的确对多线程支持不够。另外winsock大部分操作都是异步的,回调的,直接用数组可能方便一点。Top
2 楼jamesband031(可阔)回复于 2005-12-04 21:07:59 得分 1
帮顶
--------签名档----------------------------
号外号外,新鲜的酷站大出炉,不买也看看啊:*)
www.source520.com
80G源码电子书免费免注册下载,大量精辟技术文档库随时更新Top
3 楼hotmail_mk(何必……)回复于 2005-12-05 08:57:03 得分 0
ActiveX?是自己做,还是找一个可用的,能说一下具体思路吗?Top
4 楼dyb1234567(蚂蚁)回复于 2005-12-26 18:31:51 得分 25
先在窗体上放1个winsocket控件,然后复制它,再粘贴它就得到一个控件数组。
这样你用
load winsocket(1)
winsocket(1).close
winsocket(1).Accept requestIdTop
5 楼hotmail_mk(何必……)回复于 2005-12-28 14:39:30 得分 0
dyb1234567(蚂蚁),我用的就是你说的这个方法,但服务端一旦放到互联网上就不响应第二个人了,无法传送文件。我已经改用vc++了,谢谢你了。该结贴了。Top
6 楼dyb1234567(蚂蚁)回复于 2005-12-29 14:40:00 得分 0
在局域网和互联网上是一样的,如果局域网调试通过,在互联网上应该也可以的。
请注意是winsocket(1).Accept requestId 而不是开始的winsocket(0),winsocket(0)继续Listen.Top
7 楼hotmail_mk(何必……)回复于 2005-12-30 10:18:20 得分 0
你说得不错,我的程序在局域网中一点问题也没有问题的,但互联网中确实存在我上述说的问题,我分析可能是两种网络中的传输速度不一样,网络响应的速度会有影响,这样会不会影响到两端的通讯?Top
8 楼csuker(斩月仙)回复于 2006-01-05 21:21:24 得分 12
要使用接受连接的命令
form1.sckAccept(index).Accept requestID
用新LOAD的控件连接 要有一个接收ID号,这样可以实现多连接.Top




