necesito que un server que acepta multiples conexiones, responda a cada cliente por separado.
es posible??
como?
gracias
Winsock(Index).SendData Datos, Donde Index es el Indice del Winsock al Cual quieres enviar los datos.
gracias!
me imaginaba...
ahora... como obtengo el index del cliente conectado??
y así poder contestarle....
saludos
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
teoricamente por eventos te tira el index, o alguna referencia al socket
gracias!!
algun ejemplo de algun code?
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:
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
muchas gracias!!
lo pruebo y comento :)
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
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!¡.
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...
es fácil un ejemplo sutil seria este:
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!¡.
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