Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema Winsock

Estas en el tema de Problema Winsock en el foro de Visual Basic clásico en Foros del Web. Hola gracias por leer el post, tengo el siguiente problema,estoy haciendo una aplicacion cliente-servidor , donde el servidor necesita enviarle 2 datos al cliente y ...
  #1 (permalink)  
Antiguo 16/01/2007, 23:16
Avatar de TheJez  
Fecha de Ingreso: agosto-2004
Ubicación: México - Distrito Federal
Mensajes: 176
Antigüedad: 19 años, 8 meses
Puntos: 0
Problema Winsock

Hola gracias por leer el post, tengo el siguiente problema,estoy haciendo una aplicacion cliente-servidor , donde el servidor necesita enviarle 2 datos al cliente y el cliente los pueda capturar y utilizarlos en otras cosas...

el codigo que utilizo en el servidor es el siguiente:
Código:
socket.SendData ("ip " + socket.LocalIP + "")
nombrep = "jose" 'variable temporal
socket.SendData ("nombre " + nombrep + "")
y el del cliente es el siguiente:
Código:
socket.GetData str_datos
If Mid(str_datos, 1, 2) = "ip" Then
servidorIp = Mid(str_datos, 4, Len(str_datos)) + ""
ElseIf Mid(str_datos, 1, 6) = "nombre" Then
servidorNombre = Mid(str_datos, 6, Len(str_datos)) + ""
End If
msgbox(servidorIp)
msgbox(servidorNombre)
el problema es que la variable servidorNombre se queda sin contenido y la variable servidorIp queda mas o menos asi 127.0.0.1jose es decir me junta los 2 senddatas, espero me puedan ayudar
__________________
"Knowledge is power..."
"Conocimiento es poder"
TheJez^
  #2 (permalink)  
Antiguo 19/01/2007, 13:50
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Re: Problema Winsock

eso es facil al final de cada envio pon un separador.
ejemplo:
socket.SendData ("ip " + socket.LocalIP + "#*#")
nombrep = "jose" 'variable temporal
socket.SendData ("nombre " + nombrep + "#*#")

y luego separa los mensajes. y realiza el codigo para cada mensaje.
algun problema preguntame
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
  #3 (permalink)  
Antiguo 19/01/2007, 16:41
Avatar de TheJez  
Fecha de Ingreso: agosto-2004
Ubicación: México - Distrito Federal
Mensajes: 176
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Problema Winsock

Hola antes que nada, muchas gracias por contestar, tengo la duda de como separo la string en cada #*# , espero me puedas facilitar como hacer eso
__________________
"Knowledge is power..."
"Conocimiento es poder"
TheJez^
  #4 (permalink)  
Antiguo 20/01/2007, 09:57
Avatar de VisualGuallabo  
Fecha de Ingreso: marzo-2005
Mensajes: 288
Antigüedad: 19 años, 1 mes
Puntos: 2
Re: Problema Winsock

Ok para eso crearemos una función para mayor organización en el codigo.


function separador(TxtData as string, separador as string)
Dim Terminar As Boolean
Dim conta As Integer
Dim matri As Array

matri = Split(TxtData, separador)

Do
On Error GoTo Termina
' accion es un procedimiento al que le pasaras los mensajes separados
accion(matri(conta)) 'obteniendo los datos
conta = conta + 1
Loop While Terminar = False
End Function

sub accion(data as string)
If Mid(data, 1, 2) = "ip" Then msgbox(Mid(data, 4))
If Mid(data, 1, 6) = "nombre" Then msgbox(Mid(data, 8) )
End sUB


solo tienes que pasar ala función separador los datos resividos.


socket.GetData str_datos
separador(str_datos,"#*#")


esta tecnica la uso en un juego de cartas en red y me funciona de marabillas
__________________
"No hay lenguaje de programación potente que sea inferior a otro semejante cuando existe un buen programador que lo defiende"

Yosvanis Cruz Alias VisualGuallabo
Ycruz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.