2
« le: Décembre 20, 2013, 09:09:58 pm »
Bonsoir,
Je souhaite utiliser un SocketSelector dans un serveur pour "surveiller" plusieurs sockets à la fois. Pour le tester, j'utilise telnet.
Après envoi d'un message via telnet, le sélecteur comprend bien qu'un message est arrivé, mais l'appel à receive() avec un paquet bloque, tandis que l'appel à receive() avec un (void*) fonctionne parfaitement. Dans le cas d'un sf::Packet, la fonction receive() retourne un code d'erreur dès que le client se déconnecte.
Je pense que le cas "receive(paquet)" bloque car les 4 octets attendus par la fonction receive() ne sont pas présents.
Dois-je abandonner l'utilisation des sf::Packet ? Peut-on spécifier au sélecteur de ne réagir que lorsqu'un paquet complet est prêt ?