vider une chaine de caractère

En faite je ne sais plus si mon problème vient de ma chaine de caractères ou de mon buffer, ce que je suis certain par contre c'est qu'au bout d'un certains nombre de réceptions, la lecture de ma chaine de caractères ne se fait plus.
Et si le récepteur envoie par erreur 10 valeurs au lieu de 5 en réponses d'une requette la réponse est traitée en deux fois 5 par 5 on garde donc bien en mémoire après chaque if idem, j'ai essayé si on envoie 10 fois une chaine de caractères à la suite on va bouclé 10 fois de suite.

Si flush() ne fonctionne plus comment on fait?