Bonjour,
Le Status Done est renvoyé une fois que toute les données demandées à être envoyée ont été traitées par SFML localement.
Que le TcpSocket soit bloquant ou non dans les deux cas un Status::Done SFML indique bien que la donnée est partie sur le socket.
La donnée est donc envoyé sur le socket TCP qui "relie" les deux hôtes, et donc à l'instant T on peut avoir un Status::Done sur l'expéditeur, alors que le destinataire n'a lui pas encore fait appel à la fonction receive de SFML. La donnée est en quelque sorte en attente sur la couche 4 du modèle OSI du destinataire (celle qui gère TCP/UDP/etc..) et attend d'être récupérée, c'est le dernier contrôle à être effectué. Pour avoir un contrôle supplémentaire il faut implémenter un protocole de niveau supérieur.
Pour résumer on peut être sûr que la donnée ait bien été envoyée au destinataire (elle a bien traversé le câble), mais pas qu'elle ait encore été traitée par SFML en face..