Aceptar infinidad de conexiones ( winsock, cliente/servidor)

Iniciado por ジ, 17 Junio 2006, 01:40 AM

0 Miembros y 1 Visitante están viendo este tema.

 Hola pues he estado mirando el tuto de reydelmundo11 sobre aseptar mas de una conexion y despues de yo crear el index de winsock y dejarlo preparado el server para que asepte + conexiones, en el cliente que debo hacer? me explico yo lo que querria seria en un control ( no se cual es el + indicado ) agrupar todas las ips de los servidores que esten conectados y selecionando una ( ip de la lista ejemplo: bifrost) manejar ese server y poder ya hacer lo que quiera pues x ejemplo capturar la screen y que quiero irme a manejar el file manaher de otro server pues seleciono la ip del correspondiente server y asi...como en el bifrost .

Espero que me puedan ayudar con esto que me esta costando bastante.salu2.
el tiempo pondrá a cada uno en su lugar

sircid

Extraído de: http://es.geocities.com/reydelmundo11jorge/tutorial/Winsock.doc

Aceptar más de una solicitud de conexión
El servidor básico comentado anteriormente sólo acepta una solicitud de conexión. No obstante, es posible aceptar varias solicitudes de conexión con el mismo control si crea una matriz de controles. En este caso, no necesita cerrar la conexión; basta con crear una nueva instancia del control (estableciendo la propiedad Index) e invocar el método Accept de la nueva instancia.
El código que se muestra a continuación presupone que existe un control Winsock en un formulario llamado sckServer y que su propiedad Index tiene el valor 0, por lo que el control forma parte de una matriz de controles. En la sección Declaraciones se declara una variable intMax a nivel de módulo. En el evento Load del formulario, intMax tiene establecido el valor 0 y la propiedad LocalPort del primer control de la matriz tiene el valor 1001. Después, se invoca el método Listen en el control, convirtiéndolo en el control "que escucha". A medida que llega cada solicitud de conexión, el código comprueba si el índice es 0 (el valor del control "que escucha"). Si es así, este control aumenta la variable intMax y utiliza ese número para crear una nueva instancia del control. Esta instancia se utiliza para aceptar la solicitud de conexión.
Private intMax As Long

Private Sub Form_Load()
   intMax = 0
   sckServer(0).LocalPort = 1001
   sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
      intMax = intMax + 1
      Load sckServer(intMax)
      sckServer(intMax).LocalPort = 0
      sckServer(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub

pikachu

Sustituyo todo lo que tenga que ver con mi winsock por el nombre "sckServer" tanto en el cliente como en el servidor y no me conecta...alguien me puede orientar?
gracias.

sircid


elmaro


Private Function NuevoSocket() As Integer
    Dim numElementos As Integer 'numero de sockets
    Dim i As Integer 'contador
    'obtiene la cantidad de Winsocks que tenemos
    numElementos = Winsock3.UBound
    'recorre el arreglo de sockets
    For i = 0 To numElementos
        'si algun socket ya creado esta inactivo
        'utiliza este mismo para la nueva conexion
        If Winsock3(i).State = sckClosed Then
            NuevoSocket = i 'retorna el indice
            Exit Function 'abandona la funcion
        End If
     Next
    'si no encuentra sockets inactivos
    'crea uno nuevo y devuelve su identidad
    Load Winsock3(numElementos + 1) 'carga un nuevo socket al arreglo
    'devuelve el nuevo indice
    NuevoSocket = Winsock3.UBound
End Function


esto es pa aceptar mas de una conexion
para hacer lo que pide .....::::G.T.S::::..... podrias hacer asi
en el cliente est funcion,. asi acepta varias conexiones,. 1 x server,. avisando que estan en escucha osea,. en el servidor usar 2 winsock minimo,. 1 para avisar al cliente el estado(que esta en linea) y el otro o los otros para manejar el servidor

en el cliente,. 2 ws como minimo,. 1 con matris (ej. winsock(0) ) y el o los otros para manejar al server

par listar las ip podrias usar un listbox,. al acer clik en la ip(list1.index(x)-1) que el segundo ws conecte a esa ip

creo que me explike bien,.(no muy bien pero si bien xD)
suerte en tu proyect,.- yo tmb tengo que acer eso, estoy haciendo un worm/backdoor ,. pero no quiero usar no-ip ni tmpoco mi ip esttica,. asi que no voy a poder listar las ip :S
saludos


pd: la funcion solo carga controles,. no los descarga,.



El MaRo!

pikachu

Muchas gracias a todos, en cuanto lo pruebe os comento porke seguramente me tengais que ayudar, ya que soy pesimo.