要怎么控制winsock的listen呢,谢谢

解决方案 »

  1.   

    不可以的,Load多一个Winsock吧
      

  2.   

    那就是多少winsock就多少连接吗?sigh,如果是100个要连接岂不是烦死了?
      

  3.   

    楼上不是说用 Load 吗?搂主不知道 Load 语句吗?
    可以通过他动态创建控件组,有什么烦的?
    如:
    Load winsock1(1)    '创建了一个Index是1的控件
    Load winsock1(2)    '创建了一个Index是2的控件
    ...
    Load winsock1(n)    '创建了一个Index是n的控件Unload winsock1(1)    '卸载了一个Index是1的控件
    Unload winsock1(2)    '卸载了一个Index是2的控件
    ...
    Unload winsock1(n)    '卸载了一个Index是1的控件只要你在winsock控件相应的事件中使用这些语句不就可以了。
    详细的自己看 MSDN 吧
      

  4.   

    给你点关键代码吧
    Private intMax As Long 'winsock最大的下标Private Sub Form_Load()
        intMax = 0
        Winsock1(0).LocalPort = 7699 '本地监听的端口
        Winsock1(0).ListenEnd Sub
    '*************************************************************************
    '**函 数 名:Winsock1_ConnectionRequest
    '**输    入:Index(Integer)        -
    '**        :ByVal requestID(Long) -
    '**输    出:无
    '**功能描述:对方请求连接时候触发,当没有以前已经关闭的控件的winsock控件数组的话就创建
    '**全局变量:
    '**调用模块:
    '**作    者:影子
    '**日    期:2005-02-06 08:39:12
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0.0
    '*************************************************************************
    Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)    If Index = 0 Then
            Dim i As Integer
            Dim temp As Integer
            temp = 0
            For i = 1 To intMax
                If Winsock1(i).State = 0 Then
                    temp = i
                    Exit For
                End If
            Next
            If temp = 0 Then
                intMax = intMax + 1
                temp = intMax
            End If
            Load Winsock1(temp)        Winsock1(temp).LocalPort = 0        Winsock1(temp).Accept requestID
        End IfEnd Sub
      

  5.   

    上面的老大版权意识真强啊
    你怎么回收以前连接后来短开的那些个winsock那?
      

  6.   

    1.用控件数组(上面都说过了)
    2.在load新的控件前,循环检查一下有没有已经断开的连接(用一个数组来保存控件状态,连接或断来时都在数组里作标识,每次只循环检查数组即可,从第一个查起,当遇到第一个处理断开状态的标识时,用这个数组的index做控件的index来load控件)
    不知道说清楚了没有.
      

  7.   

    那在winsock.close里面怎么样unload呢?因为我不知道断开的连接是那个啊?
      

  8.   

    另外localport=0是怎么回事啊?
      

  9.   

    客户端在关闭连接前发送
    winsock.close
    doevents
    在服务器触发close事件
    Private Sub Winsock1_Close(Index As Integer)
    winsock(index).close
    end sub2另外localport=0是怎么回事啊?
    客户端必须这么写,因为你连接服务器端口,你自己的端口是随机指定的,你要是自己指定的话会出错的
      

  10.   

    localport=0是怎么回事?上面的程序应该对应的就是服务器端吧。和客户端有什么联系呢?这个应该是服务器端响应客户端的请求不是吗?