在tcp协议中,服务器里有2个winsock控件,分别是winscok1、winscok2,他们的localport是一个端口,客户端也有2个控件winscok1、winscok2,那么winscok1、winscok2同时给服务器发送数据,拂去其中哪个控件收会到数据?

解决方案 »

  1.   

    两个winsock能侦听同一个端口?bind不会报错?
      

  2.   

    侦听某个端口的服务只能有一个存在,当服务收到某个连接请求与对方连接后,可以再用另外一个侦听那个端口,这种做法可以持续下去,所以用控件数组来实现比较合适,而不是单独放两个控件来做这种工作。
    当某个控件的 Index 属性被设置成 0 或其他数值后,这个控件就具备了设置控件数组的特质。
    可以用:
    Dim NewSock As Long
    ...
    Load Winsock1(NewSock)来添加新的控件元素,还可以用:Unload Winsock1(NewSock)
    来卸载控件元素,这样就可以动态创建出N个控件,但处于某个端口侦听状态的只能有一个,其他的要不
    就是已连接状态,要不就是关闭状态,这样你应该清楚了吧