你首先要定一个winsock数组,用一个专门listen当有connectrequest时候,就用数组中的一个去accept.

解决方案 »

  1.   

    用WINSOCK近件即使有多个客户端向服务器连接并不会出现什么问题的,我做的机房监控程序就运行得很稳定,不需要什么数组。
      

  2.   

    楼上的如果用一个winsock,当这个在通讯的时候,第二个connect的时候,这个winsock已经不是在listen了,如何连接,请指教,我当时在写这个的时候也是焦头呀!
    楼主,这个例子有也很长不好贴,你可以到,www.21code.com上找找,一定有例子的。
      

  3.   


    按你说的,专门用一个winsocket A来监听连接,而用一个动态的winsocket数组 B来处理连接,即有新的连接来了后,A把该连接交给B中的一个处理,即先 load B(i)你能说说怎么维护这个socket数组吗,会不会因为连接增多,这个数组越来越大?谢谢。
      

  4.   

    用控件数组,或者使用引用方式new
    dim a as winds
      

  5.   

    TO:qxluo(大头虾,不是大虾) 
    连接数多的话那用的数组控件肯定会大的了,但你可以把一些已断开的连接所占用的数组控件UNLOAD掉!这样就不会那么严重了
      

  6.   


    我想问一下,比如最开始是ws(0),后来又load了三个:load ws(1)
    load ws(2)
    load ws(3)
    这时该数组一共有四个元素了(0~3)
    后来我发现ws(2)已经不用了,我就调用unload ws(2),那么请问:
    1、ws这个数组现在一共有几个元素,即ws.count等于几?
    2、以前索引为3的元素现在的索引是2还是3?谢谢
      

  7.   

    1、首先定义一个winsock控件数组
    2、winsock(0).listen
    3、有新的连接时:
    dim n as integer
    dim i as integer
    dim s as integers=-1
    n=winsock.ubound   '取得可供引用的最大下标
    if n>1 then
        for i=1 to n-1
              if winsock(i).stat=sckclosed then
                       s=i
                       exit for
              end if
        next
    end ifif s<0 then      '表示未有处于空闲连接状态的控件
         load winsock(n)
         s=n
    end ifwinsock(s).accept4、在winsock(index)的close事件中加入如下代码if index<>0 then
         winsock(index).close
    end if
      

  8.   

    这里有详细的例子和文章www.winsockvb.com