Winsock

Iniciado por Relapse, 7 Noviembre 2009, 00:47 AM

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

Relapse

  Hola, estoy haciendo un pequeño programa. Y deseo que el cliente envíe información al servidor como el nombre de la pc. Como puedo hacer para enviar esta información? es decir

Winsock1.senddata "asdkaskdjk"

  No serviria ya que cada computadora tiene un nombre diferente y el sistema de data arrival del servidor es por cases.. alguna ayuda?

BlackZeroX

Claro, la solución es: usar el buscador, leerte un manual o derivados, este tipo de dudas estan muy documentatadas en la internet y este foro.

Dulces Lunas!¡.
The Dark Shadow is my passion.

cassiani

Cita de: Relapse en  7 Noviembre 2009, 00:47 AM
  Hola, estoy haciendo un pequeño programa. Y deseo que el cliente envíe información al servidor como el nombre de la pc. Como puedo hacer para enviar esta información? es decir

Winsock1.senddata "asdkaskdjk"

  No serviria ya que cada computadora tiene un nombre diferente y el sistema de data arrival del servidor es por cases.. alguna ayuda?

no me queda claro cual es tu problema, siguen siendo cadenas de caracteres solo debes encontrar la mejor forma de tratarlas, si no quieres que entre a los select case (eso entendi) entonces usa algún caracter que sirva para identificar el tipo de cadena que estas enviando/recibiendo.

Relapse

 Lo voy a hacer facil. Un ejemplo de como funcionaria normalmente seria este:

Cliente -> Winsock1.senddata "Hola"

Server -> Case "Hola"
                Msgbox "Hola"

  Ahora mi problema

Cliente -> Winsock1.senddata "Nombre de su pc que yo no lo se"

Server -> Case ?

cassiani

#4
Bueh.. como te dije, puedes jugar con un conjunto de caracteres que identifiquen a esa cadena que has enviado, por ejemplo:

para el caso de cuando envias hola el entra en su bloque respectivo, pero si luego quieres enviar otro tipo de saludo, que harás? un case por cada saludo? si envias: {sdo:hola} y luego en el server extraes los caracteres antes de los dos puntos, al pasarle "sdo" al case, ya sabes que es un saludo y muestras como saludo (valga la redundancia) lo que has enviado luego de los dos puntos, entiendes?

WHK

Lo que necesitas es Winsock1.remotehost.
recuerda verificar al inicio de cada función si winsock1.state es igual a 7, eso significa que está conectado ya que en algún caso puede que se desconecte el socket justo cuando vayas a procesar el valor y te dará error.

Relapse

#6
Cita de: cΔssiΔni en  7 Noviembre 2009, 02:16 AM
Bueh.. como te dije, puedes jugar con un conjunto de caracteres que identifiquen a esa cadena que has enviado, por ejemplo:

para el caso de cuando envias hola el entra en su bloque respectivo, pero si luego quieres enviar otro tipo de saludo, que harás? un case por cada saludo? si envias: {sdo:hola} y luego en el server extraes los caracteres antes de los dos puntos, al pasarle "sdo" al case, ya sabes que es un saludo y muestras como saludo (valga la redundancia) lo que has enviado luego de los dos puntos, entiendes?

entendí a la perfección.. muchisimas gracias

Para el que no haya entendido se puede hacer así:

en el data arrival

Dim info As String
Winsock1.GetData info
info = Replace(info, "@", vbNewLine)
text1.text = info

y en el cliente

Winsock1.SendData variable & "@"