Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Problemas Decodificacion TCP
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problemas Decodificacion TCP 
 
Y he usado varias aplicaciones en las cuales cree servers y clientes TCP.
Ahora bien, tyengo que comunicarme con una app cerrada que manda la data en HEX. En el wireshark veo el trafico y el dato que me envia el soft cerrado es "00 0a 00 04 00 00 00 01", pero mi server recibe "\x00\n\x00\04\x00\x00\x00\x01".
Entiendo que \x significa algo así como caracter no alfanumerico, pero no entiendo por que ve eso.
No se mas que hacer, alguna idea?
Realmente necesito ayuda ya que el software con el que debo interactuar es cerrado y no pudo modificarlo.
Gracias, saludos.
 



 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
"\x.." permite de representar y utilizar un valor en hexadecimal dentro de una cadena. Es la representación de un número como un carácter de tipo String (ASCII).

Pues, tú estás obteniendo dentro de una cadena simplemente una modalidad particular de representación y de expresión hexadecimal de algunos valores.


Probar esto:

Public Sub Main()

   Print MkByte$(4);; "\x04";; Chr(4)

End



Ah... vamos a ver algunos modos para convertirlo a valor numerico decimal:
Public Sub Main()

  Dim bb As Byte[]
  Dim p As Pointer

   Print Asc("\x04")
    
   With bb = Byte[].FromString("\x04")
     Print bb[0]
     Print Byte@(.Data)
   End With
    
   p = Alloc("\x04")
   Print Byte@(p)
   Free(p)

End

 



 
última edición por vuott el Martes, 29 Septiembre 2015, 11:43; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
vuott, muchas gracias por responder.
Disculpame pero recién arranco con gambas y no me quedo muy clara la respuesta.
Yo recibo los datos de la siguiente manera:

Public Sub Socket_Read()
       Dim recibido as String
       Read #MVar.SocketAceptado, recibido, Lof(MVar.SocketAceptado)
       mVar.dataTCP=Lower(recibido)
end
 


Esperaría recibir algo así como "00 0a 00 04 00 00 00 01", pero mi server recibe "\x00\n\x00\x04\x00\x00\x00\x01".
¿Como hago para decodificar correctamente el mensaje entrante?
Muchas gracias.
 



 
última edición por sripetta el Martes, 29 Septiembre 2015, 13:55; editado 2 veces 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
Vemos esto:

Public Sub Socket_Read()

  Dim recibido as String
  Dim bb As Byte[]
      
   Read #MVar.SocketAceptado, recibido, Lof(MVar.SocketAceptado)
 
   bb = Byte[].FromString(recibido)

   For Each b In bb
     Print Hex(b, 2)
   Next
              
end






Uhmmm...sripeta, no puedes recibir los valores como tipo Byte (en vez de String) ?

Es decir:
Public Sub Socket_Read()

  Dim recibido as Byte
      
   While True
     Read #MVar.SocketAceptado, recibido
     Print Hex(recibido, 2)
   Wend

End

Dime, por favor, si esto funciona.



...y si funciona con este codigo:
Public Sub Socket_Read()
 
  Dim bb As Byte[]
  
   With bb = New Byte[1]
     .Read(MVar.SocketAceptado, 0, 1)
   End With
 
   Print Hex(bb[0], 2)

End

 



 
última edición por vuott el Martes, 29 Septiembre 2015, 16:35; editado 7 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
vuott,
muchisimas gracias por tu ayuda.
Ahora me queda muchos más claro, y pude hacerlño funcionar.
Lo que no funciona es recibir los datos directamente como BYTE.
Saludos.
 



 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
sripetta escribió: [Ver mensaje]
Lo que no funciona es recibir los datos directamente como BYTE.


Uhmmm... porque no funciona el segundo ejemplo ? Que ocurre ? No se ve ningun valor ? O que ?
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
voutt,
el tema es cuando defino la variable como byte, cuando llega al comando "READ" me da error, dice que esperaba un byte pero recibe un string.
Saludos.
 



 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
Vuott,
ahora tengo otro problema... el inverso.
Osea, debo mandarle comandos al software cerrado, pero el comando "Write" solo me aceptada string y debo mandarle bytes....

original:
Public Sub enviar_TCP(data as string)
     Write #Mvar.SocketAceptado, data, Len(data)
end


Intente:
Public Sub enviar_TCP(data as byte)
     Write #Mvar.SocketAceptado, data, Len(data)
end


Pero esto me da error, espera un string pero le llega un byte
 



 
última edición por sripetta el Miercoles, 30 Septiembre 2015, 14:53; editado 2 veces 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
Sin entrar al problema de los tipos de datos y demás, ¿por qué, simplemente no usas string y luego conviertes la cadena como más te interese?

Algo así:

sRecibido= "\x00\n\x00\04\x00\x00\x00\x01"
sRecibido=replace(sRecibido,"x\\"," ")
 

y a partir de ahí operar como antes...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemas Decodificacion TCP 
 
Shordi,
el tema de la recepción ya esta resuelto.
De todas maneras eso fue lo primero que intente, pero eso me hace perder información.

Mi problema ahora es a la hora de enviar... por que el comando "Write" solo me acepta String, como detallo en el post anterior.
Gracias por contestar.
Saludos.
 



 
sripetta - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Problemas Con Los Png tururu Controles/Librerías/Componentes 4 Lunes, 12 Marzo 2012, 21:16 Ver último mensaje
jguardon
No hay nuevos mensajes ¿Problemas Con El Portal? shordi General 5 Miercoles, 12 Marzo 2014, 10:05 Ver último mensaje
shordi
No hay nuevos mensajes Problemas Con IF... THEN... Paquito General 10 Miercoles, 06 Enero 2016, 14:52 Ver último mensaje
Paquito
No hay nuevos mensajes Problemas Con La Letra Ñ gones Bases de Datos 1 Viernes, 05 Julio 2019, 13:16 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron