lemure64 ha scritto:inevitabilmente le funzioni che ho a disposizione su windows per ricevere vogliono un carattere di chiusura, quindi non se ne esce
Il problema mi sembra nasca dal voler usare per forza readString, che come dice il nome immagino serva per ricevere sequenze di caratteri ASCII + terminatore, e non sequenze di byte qualsiasi.
Una generica readChar o readBytes invece accetta per definizione qualsiasi byte, e cosa farne è compito del programma.
Quindi o trasmetti solo ASCII (ad esempio valori binari convertiti in esadecimale, due caratteri per ogni byte), o ricevi a livello più basso a singoli byte (con readChar), e ci puoi fare quello che vuoi.
Invece se vuoi usare la readString, e ammesso che il problema sia solo il terminatore, ma non è detto, allora basterebbe "mascherarlo", trasformandolo in trasmissione in qualcos'altro, ma siccome ogni combinazione di bit è buona non gli si può assegnare semplicemente un altro valore, ci tocca "aggiungere informazione" ad esempio tramite sequenze di escape. Così quando devi trasmettere un terminatore dentro i dati potresti invece trasmettere la coppia \@, e quando devi trasmettere il valore binario corrispondente al backslash trasmetti due backslash di fila \\. In ricezione analizzi i backslash, scartando il primo che arriva e in base a quello che ricevi immediatamente dopo (@ oppure \) sai se li ci va il valore del terminatore o il vero backslash.