Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Fucko en 20 Marzo 2010, 22:13 PM

Título: conexiones multiples con winsock ayuda
Publicado por: Fucko en 20 Marzo 2010, 22:13 PM
necesito que un server que acepta multiples conexiones, responda a cada cliente por separado.
es posible??
como?
gracias
Título: Re: ayuda con servidor/cliente winsock con multiples conexiones
Publicado por: DarkMatrix en 21 Marzo 2010, 03:33 AM
Winsock(Index).SendData Datos, Donde Index es el Indice del Winsock al Cual quieres enviar los datos.
Título: Re: ayuda con servidor/cliente winsock con multiples conexiones
Publicado por: Fucko en 21 Marzo 2010, 04:18 AM
gracias!
me imaginaba...
ahora... como obtengo el index del cliente conectado??
y así poder contestarle....
saludos
Título: Re: ayuda con servidor/cliente winsock con multiples conexiones
Publicado por: Fucko en 27 Marzo 2010, 15:29 PM
Cita de: Fucko en 21 Marzo 2010, 04:18 AM
gracias!
me imaginaba...
ahora... como obtengo el index del cliente conectado??
y así poder contestarle....
saludos


nadie??
es posible hacer eso??
gracias
Título: Re: conexiones multiples con winsock ayuda
Publicado por: raul338 en 27 Marzo 2010, 15:33 PM
teoricamente por eventos te tira el index, o alguna referencia al socket
Título: Re: conexiones multiples con winsock ayuda
Publicado por: Fucko en 27 Marzo 2010, 15:35 PM
gracias!!
algun ejemplo de algun code?
Título: Re: conexiones multiples con winsock ayuda
Publicado por: DarkMatrix en 30 Marzo 2010, 07:05 AM
Cuando Recibes alguna informacion del alguno de los clientes se acciona el evento DataArrival del Winsock, si el Winsock esta en un Array osea hay varios Clientes conectados en un array de Winsocks el mismo evento DataArrival te devuelve el Index.

Ejemplo:

Código (vb) [Seleccionar]
Private Sub WinSock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
    Dim Datos As String
    WS(Index).GetData Datos, vbString, bytesTotal
    If Datos = "Hola" Then WS(Index).SendData "Respuesta"
End Sub
Título: Re: conexiones multiples con winsock ayuda
Publicado por: Fucko en 17 Abril 2010, 00:40 AM
muchas gracias!!
lo pruebo y comento :)
Título: Re: conexiones multiples con winsock ayuda
Publicado por: Fucko en 19 Abril 2010, 00:32 AM
Si, funciona!!
responde automaticamente a cada cliente conectado.

ahora... es posible esto?:

se conecta un cliente "x" y que el programa responda a ese cliente "x" usando el boton de enviar.

ej: winsock.senddata (text2)

pero el winsock en cuestión es el del array

usando winsock2(index).senddata (text2) funciona, pero solo responde al primer cliente conectado...
se entiende??
muchas gracias de nuevo
Título: Re: conexiones multiples con winsock ayuda
Publicado por: BlackZeroX en 19 Abril 2010, 00:50 AM
Te Respondo:

Si, si se puede.

Si quieres sber el como, lee un manual de winsock!¡.

Nota: revisa esta funcion:  http://foro.elhacker.net/programacion_vb/sourcefuncionvb6_aceptarconeccion_sencilla_funcion-t290957.0.html;msg1441007#msg1441007

Dulces Lunas!¡.
Título: Re: conexiones multiples con winsock ayuda
Publicado por: Fucko en 19 Abril 2010, 02:26 AM
gracias!
eso lo puedo hacer, puedo aceptar las multiples conexiones, y responder a cada uno desde el evento dataarrival, pero el problema es el siguiente:

desde el evento data arrival, el server responde al cliente correcto, o sea, solo responde al cliente que envió la petición o string, pero si quiero hacer, en vez de en el evento data arrival, en un boton, no se como adaptar o que codigo usar, ya que al responder, o bien, el server responde a todos, o solo al primer cliente conectado...
Título: Re: conexiones multiples con winsock ayuda
Publicado por: BlackZeroX en 19 Abril 2010, 02:43 AM
es fácil un ejemplo sutil seria este:

Código (vb) [Seleccionar]

sub main()
   msgbox(DataArrival(val(inputbox("Ingresa un Index X entre 0 y 10","","0"))))
end sub

public function DataArrival() as string()
  dim tmpArray() as string,i as integer
  redim tmparray(10)
'   tmparray(0) = "a"
'   tmparray(1) = "aa"
'   tmparray(2) = "aaa"
'   tmparray(3) = "aaaa"
'   tmparray(4) = "aaaaa"
'   tmparray(5) = "aaaaaa"
'   tmparray(6) = "aaaaaaa"
'   tmparray(7) = "aaaaaaaa"
'   tmparray(8) = "aaaaaaaaa"
'   tmparray(9) = "aaaaaaaaaa"
'   tmparray(10) = "aaaaaaaaaaa"
   '    //  Es lo mismo que arriva solo que simplificado
   for i = lbound(tmparray) to ubound(tmparray)
       tmparray=string(i+1,"a")
   next

   DataArrival=tmparray
end function


P.D.: Pega en un modulo y pon el proceso sub main() como inicial igual puedes quitar TODOS los FORMS y meter un modulo simple y pegar este código de esta forma se ejecuta automaticamente.

Dulce Infierno Lunar!¡.
Título: Re: conexiones multiples con winsock ayuda
Publicado por: Fucko en 20 Abril 2010, 00:47 AM
gracias!
no puedo hacer funcionar lo ultimo...
te paso el code en privado si no es mucha molestia.
para que se entienda bien lo que quiero hacer XD
saludos