Problema con Winsock y cadenas Hexadecimales (guíenme)

(1/2) > >>

cero_kill_byte:
Holas a tod@s

Les cuento mi drama por si alguien tiene un consejo

Con el Control Winsock de VB 6.0 defino, abro y monitoreo un puerto UDP bajo un w98 SE ( eso esta OK)  ;) .

Me debe llegar una cadena Hexadecimal a ese puerto. Pero al recuperarla con el Metodo GetData del Winsock, me la convierte automáticamente a decimal, es decir.

me llega por Winsock la cadena Hexadecimal &HA5 &H06 &HD4

Pero cuando consulto la variable donde queda el valor, me muestra 1656212

Obviamente  no me sirve, por que quiero tratar uno a uno cada caracter hexadecimal pero me deja la cadena en decimal, además que los concatena y no se donde empieza, ni donde termina cada valor.

He intentado con todos los tipos numeros del VB, pero no hay caso.
Alguien me puede explicar como (si es que se puede hacer) leer caracter por caracter desde el buffers del puerto.

Si Alguien me puede ayudar, se lo agradecería

Slasher-K:
Usa una matriz de bytes en lugar de una variable numérica. Y en lugar de GetData usa el método PeekData.

Por ej:

Código:

Option Explicit
Option Base 1

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
        Dim lpBuffer() As Byte
        Dim sHexVal$(), iCnt%
 
  ReDim lpBuffer(bytesTotal) As Byte
 
  Call Winsock1.PeekData(lpBuffer, vbArray Or vbByte, bytesTotal)

  iCnt = 1
  ReDim sHexVal$(iCnt)
 
  For i = 1 To bytesTotal
    If lpBuffer(i) = 32 Then
      iCnt = iCnt + 1
      ReDim Preserve sHexVal$(iCnt)
    End If
   
    sHexVal(iCnt) = sHexVal(iCnt) & Chr$(lpBuffer(i))
  Next
End Sub


Este código obtiene en una matriz los valores &HA5 &H06 &HD4 respectivamente, suponiendo que están separados por espacios (código ASCII 32).

Saludos.

cero_kill_byte:
Gracias Slasher Keeper

pero la verdad es que no vienen separados por espacio (32)

y además como es un puerto UDP, el método peekData da el mismo resultado que el GetData; por que según lo que he leido, el PeekData sólo sirve para conexciones de tipo TCP/IP

agradezco el esfuerzo. pero debo seguir buscando  :(

Slasher-K:
Pss modificando un poco el code serviría...

soplo:
Hola
Yo lo veo tan simple como enviar ese valor como string en vez de un valor numérico.

Un saludo

Navegación

[0] Índice de Mensajes

[#] Página Siguiente