selector.wait(sf::seconds(15)
socket.disconnect();
selector.remove(socket);
Dès lors je vais attendre 15 secondes sur la ligne du selector.wait qui va retourner false puis selector.wait retournera directement false sans attendre 15 secondes.J'ai pas compris. Tu peux la refaire en plus détaillée ? Peut-être montrer un code (un petit peu) plus complet au lieu de 1 + 2 lignes ?
J'aimerais savoir s'il existe un autre moyen de différencier si le return false est dû à la fin des 15 secondes ou s'il est dû à une erreurFalse signifie que rien n'est prêt dans le sélecteur. Parfois il peut le savoir sans attendre les 15 secondes (si aucune socket valide n'est dedans), parfois pas. Mais au final tu as bien le résultat escompté. Dans quel but voudrais-tu avoir plus de détails ?
J'aimerais aussi savoir s'il est utile de mettre un sf::Clock ou s'il ne peut pas y avoir d'erreur dans SocketSelector::wait si on n'essaye pas de déconnecter soi-même les TcpSocket.Ca paraît très philosophique tout ça. Quel est le problème concret que tu essayes de résoudre ?
Il faut donc bien appeler socket.disconnect() mais après SocketSelector.remove() ?Oui en effet. Déconnecter une socket revient à l'invalider / la détruire. Après tu ne peux plus l'utiliser.
J'ai relu la doc de TcpSocket, Socket et SocketSelector plusieurs fois mais je n'ai pas vu d'information à ce propos ce qui me semble assez dommage (à moins que je sois passé à côté).Faudra que je vérifie ça. Possible que je n'y avais pas songé avant d'écrire la doc :)
Non pas que je soit contrariant (bon un petit peu quand même), mais je suis assez curieux de nature et j'aimerais comprendre ce choixFlemme, simplicité et pragmatisme. Tant que je n'ai pas de bonne raison de faire une modif, je ne la fais pas. Honnêtement, je ne me pose pas autant de questions que toi, s'il n'y a pas d'utilisation concrète de tout ça côté utilisateur alors fin de l'histoire. Malheureusement je n'ai pas le temps de creuser moi-même, donc si personne ne me prouve le contraire je laisse tomber. Mais libre à toi de creuser de ton côté si tu le souhaites :)
Flemme, simplicité et pragmatisme.Les attributs d'un bon programmeur ;D