J'ai fait ces tests.
Effectivement quand je passe avec des sockets bloquantes, cela tourne impeccablement.
Avec des sockets non bloquantes:
le status de Send passe de Done à NotReady à partir de gros paquets.
En faisant des Sleep, il arrive à repasser en Done mais seulement pour une certaine taille, ensuite c'est inutile (même en doublant le temps de sleep à chaque fois que c'est en NotReady)
Cela est vraisemblablement normal, on ne peut pas faire send d'un gros paquets dans le laps de temps aussi court.
Je me demandais , en mode non bloquant, c'est un timeout très courts ou bien un arrêt lorsque qu'il n'y a rien à faire d'autre que d'attendre ? Si c'est la première réponse, c'est normal. Sinon je ne sais pas.
Par contre au niveau de receive, c'est plus bizarre:
A partir d'un moment que send ne fonctionne plus, le status de Receive reste sur Done et je reçoit en permanence le même paquet.