我用一个winsock做监听,客户请求连接时产生ConnectionRequest事件,在当中我产生一个线程,线程在模块中,在线程中我用load  sckAccept(index)产生一个winsock控件,并且初始化它,初始化之后我用form1.sckAccept(index).connect语句连接那个客户端,出现“对象'connect'的方法IMSWinsockControl失败”,请问是什么原因?如何解决?是不是winsock根本不支持多线程。急,谢谢!

解决方案 »

  1.   

    不如用ActiveX实际,VB的确对多线程支持不够。另外winsock大部分操作都是异步的,回调的,直接用数组可能方便一点。
      

  2.   

    ActiveX?是自己做,还是找一个可用的,能说一下具体思路吗?
      

  3.   

    先在窗体上放1个winsocket控件,然后复制它,再粘贴它就得到一个控件数组。这样你用load winsocket(1)
    winsocket(1).close
    winsocket(1).Accept requestId
      

  4.   

    dyb1234567(蚂蚁),我用的就是你说的这个方法,但服务端一旦放到互联网上就不响应第二个人了,无法传送文件。我已经改用vc++了,谢谢你了。该结贴了。
      

  5.   

    在局域网和互联网上是一样的,如果局域网调试通过,在互联网上应该也可以的。请注意是winsocket(1).Accept requestId 而不是开始的winsocket(0),winsocket(0)继续Listen.
      

  6.   

    要使用接受连接的命令
    form1.sckAccept(index).Accept requestID 
    用新LOAD的控件连接 要有一个接收ID号,这样可以实现多连接.