Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Little endian
Forum - Visual Basic 6 - Little endian

Avatar
johnix (Normal User)
Newbie


Messaggi: 3
Iscritto: 14/08/2009

Segnala al moderatore
Postato alle 11:22
Venerdė, 14/08/2009
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

PM Quote
Avatar
BugliL (Member)
Pro


Messaggi: 135
Iscritto: 09/08/2009

Segnala al moderatore
Postato alle 17:21
Venerdė, 14/08/2009
Testo quotato

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...
http://www.vbsimple.net/index.htm?/cliserv/clser_02.htm

Ed una spiegazione qui...
http://msdn.microsoft.com/en-us/library/aa228119%28VS.60%2 ...

Spero che nel mio piccolo ti sia stato utile ;)

PM Quote
Avatar
johnix (Normal User)
Newbie


Messaggi: 3
Iscritto: 14/08/2009

Segnala al moderatore
Postato alle 11:46
Sabato, 15/08/2009
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.

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 12:21
Sabato, 15/08/2009
credo che per la gestione nel formato in little endian dovresti crearti l'algoritmo.
Per convertire un numero in Esadecimale puoi usare la funzione
Codice sorgente - presumibilmente Plain Text

  1. valHex = Hex(numero)

per ottenere l'indirizzo della variabile usi la funzione  
Codice sorgente - presumibilmente Plain Text

  1. indirizzoVar = VarPtr(variabile)



Per ottenere informazioni sul formato little endian vedi qui http://it.wikipedia.org/wiki/Ordine_dei_byte

Per ottenere la lunghezza della stringa da inviare usi la funzione Len:
Codice sorgente - presumibilmente Plain Text

  1. size = Hex(Len(stringa_da_inviare))


Ultima modifica effettuata da Overflow il 15/08/2009 alle 12:30
PM Quote
Avatar
johnix (Normal User)
Newbie


Messaggi: 3
Iscritto: 14/08/2009

Segnala al moderatore
Postato alle 13:56
Sabato, 15/08/2009
Riusciresti a postarmi un codice d'esempio?

PM Quote