1/ Vous avez déjà vu des protocoles qui fonctionnent comme ça ?
t'as oublié la 3e grande méthode pour faire un protocole, le caractère séparateur + échappement de cet octet si il apparait dans le message. Le modèle c'est HDLC, par exemple séparateur 0x7E et si 0x7E apparait dans le message, on l'échappe en 0x7D 0x5E, et 0x7D est échappé en 0x7D 0x5D. y'a d'autres possibilités.
2/ Vous auriez pas des idées tordues de comment ça pourrait fonctionner en fait ?
comme je viens de te dire, ça a été une mode à une époque, parce que c'est autosynchronisant.
3/ Vous savez comment on trifouille les packets en aussi bas niveau que Wireshark avec Java ?
non ça je crois pas que ça existe
4/ Vous avez une super bonne idée qui me permette de contourner le problème ? Mon read() sur le InputStream attend misérablement une nouvelle info et je sais pas comment lui dire que c'est bon, tout est sous contrôle.
il te faut du read non bloquant. Soit avec les FileChannel soit en réglant les timeouts de tes sockets, plus simple. read retournera même si y'a rien à lire.