Oppure

Loading
14/08/09 9:22
johnix
Salve a tutti,
tramite winsock mi collego ad un server scritto in python. L'applicazione che ho scritto in VB6 si connette correttamente, ma il prblema è l'invio dei dati. Riporto le istruzioni per la composizione della stringa:
1-inviare due caratteri ASCII in maiuscolo "A" e "V" e fin qui OK
2-inviare la lunghezza del dato (2 bytes)
3-inviare l'indirizzo della variabile (2 bytes) es. (0x600) in esadecimale

i dati sono little endian e quindi saranno 02 00 (little endian) , not 00 02 (big endian)
Per cui avremo:
AV/x0200/x0006
0200 rappresenta 2 and 0006 rappresenta 0600 in esadecimale. (Little Endian)
In esadecimale sarebbe 41 56 02 00 00 06

Sapreste aiutarmi o indirizzarmi verso qualche esempio di codice?
Grazie in anticipo
aaa
14/08/09 15:21
BugliL
Postato originariamente da johnix:
Sapreste aiutarmi o indirizzarmi verso qualche esempio di codice?
Grazie in anticipo


Non ho ben capito il tuo problema...
Comunque puoi trovare esempi di codice qui...
vbsimple.net/…

Ed una spiegazione qui...
msdn.microsoft.com/en-us/library/…

Spero che nel mio piccolo ti sia stato utile ;)
aaa
15/08/09 9:46
johnix
Il mio problema non è nell'uso del Winsock, ma nel formato dei dati. Praticamente non so "muovermi" in VB6 con dati esadecimali, little endian etc.
aaa
15/08/09 10:21
Overflow
credo che per la gestione nel formato in little endian dovresti crearti l'algoritmo.
Per convertire un numero in Esadecimale puoi usare la funzione
valHex = Hex(numero)
per ottenere l'indirizzo della variabile usi la funzione
indirizzoVar = VarPtr(variabile)


Per ottenere informazioni sul formato little endian vedi qui it.wikipedia.org/wiki/…

Per ottenere la lunghezza della stringa da inviare usi la funzione Len:
size = Hex(Len(stringa_da_inviare))
Ultima modifica effettuata da Overflow 15/08/09 10:30
aaa
15/08/09 11:56
johnix
Riusciresti a postarmi un codice d'esempio?
aaa