Foro de elhacker.net

Programación => 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
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
  1. Private Sub WinSock_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  2.    Dim Datos As String
  3.    WS(Index).GetData Datos, vbString, bytesTotal
  4.    If Datos = "Hola" Then WS(Index).SendData "Respuesta"
  5. 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
  1. sub main()
  2.    msgbox(DataArrival(val(inputbox("Ingresa un Index X entre 0 y 10","","0"))))
  3. end sub
  4.  
  5. public function DataArrival() as string()
  6.   dim tmpArray() as string,i as integer
  7.   redim tmparray(10)
  8. '   tmparray(0) = "a"
  9. '   tmparray(1) = "aa"
  10. '   tmparray(2) = "aaa"
  11. '   tmparray(3) = "aaaa"
  12. '   tmparray(4) = "aaaaa"
  13. '   tmparray(5) = "aaaaaa"
  14. '   tmparray(6) = "aaaaaaa"
  15. '   tmparray(7) = "aaaaaaaa"
  16. '   tmparray(8) = "aaaaaaaaa"
  17. '   tmparray(9) = "aaaaaaaaaa"
  18. '   tmparray(10) = "aaaaaaaaaaa"
  19.    '    //  Es lo mismo que arriva solo que simplificado
  20.    for i = lbound(tmparray) to ubound(tmparray)
  21.        tmparray=string(i+1,"a")
  22.    next
  23.  
  24.    DataArrival=tmparray
  25. end function
  26.  

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