Bonjour à tous,
Voilà, je cherche un peu d'aide sur les socket TCP JAVA.
Nous avons deux composants JAVA qui discutent entre eux via Socket. L'un est serveur, l'autre est client. Jusque là rien de bien exceptionnel.
Via ces deux composants, nous échangeons du serveur vers le client des paquets de donnée hexa de taille variable.
Actuellement, nous envoyons directement chaque buffer de donnée utile sur la socket via OutputStream.write(buffer[]).
Tout marche convenablement. Cependant, en utilisant nos deux composants au travers d'une liaison réseaux bas débit et qui plus est assez chargée, nous recevons de temps à autre coté client, deux (ou plus) paquets de donnée utile en un seul OU l'inverse plusieurs paquets de donnée utile en un.
=> problème coté client.
Au travers de mes lectures, il est bien spécifié dans TCP que ces cas particuliers peuvent arriver cependant, il me vient une question : peut-on se sortir de cette fragmentation / agrégation de donnée facilement sans implémenter une couche additionnelle qui entourerait notre donnée utile ? Par exemple, un header et tailer avec la taille de la donnée utile ...
J'ai beau vérifier notre code et il me semble que la lecture coté client est correctement effectuée...
J'avoue sécher un peu. Rassurer moi, je ne suis pas le seul dans ce cas ? Qu'avez-vous fait pour vous en sortir ?
Merci d'avance,
denis
Partager