Ciao a tutti,
avrei un problema: devo far parlare un client e un server scritti in C che gireranno su Unix, e devo praticamente fare una sorta di handshaking iniziale dove il client manda un carattere di saluto (codificato in ASCII - 1 byte) seguito da un'altro numero, scritto sempre su 1 byte, che può assumere il valore 1, 2 o 4: questo valore serve praticamente a far capire al server che da quel momento io (client) inizierò a mandargli dei numeri interi codificati appunto su 1, 2 o 4 byte.
I problemi miei sono i seguenti:
1) ma per il little/big endian?? Non succedono casini quando invio dati binari?
2) per ricostruire lo stream al server, che si vede sostanzialmente arrivare uno stream di byte, come faccio??
3) E anche al client, come faccio a concatenare in modo intelligente questi byte??
Poniamo il caso che devo fare un programma così: handshaking con una "R" seguita dal numero 1, 2, o 4 scritto sempre su 1 byte. (byte di CODIFICA). Nel nostro esempio voglio che il client invii da quel momento in poi solo interi codificati su 2 byte.
Il server lo deve ricevere, e capire come aspettarsi i prossimi dati. (ovvero da adesso in poi si aspetta SOLO interi su 2 byte)
Poi da client voglio inviargli 4 numeri consecutivi codificati sul numero di byte scritto in precedenza sul secondo campo del primo invio (byte di CODIFICA)
Per esempio gli voglio inviare 67, 621 e 715 scritti su 2 byte. Questi numeri devono essere codificati su 2 byte, e messi in un'unico stream grosso di 4*2 = 8 byte (che saranno poi spezzettati al server)
Qualcuno mi può dare una mano a scrivere un pezzetto di codice che fa questo lavoretto??
Ringrazio anticipatamente!![]()