Bonjour à tous et à toutes :)
Lorsqu'un client se déconnecte, j'utilise ceci :
cout<<"Client "<<client.getRemoteAddress()<<" disconnected"<<endl;
client.disconnect();
m_selector.remove(client);
it = m_clients.erase(it);
Selon moi, ce code devrait théoriquement fonctionner, mais ça ne fonctionne pas. Après quelques tentative, j'ai trouvé le problème (oui pour une fois j'ai trouvé moi-même le problème ;D) et voici ma conclusion : remove doit être appelé avant disconnect
Du coup, ce code fonctionne nickel :
cout<<"Client "<<client.getRemoteAddress()<<" disconnected"<<endl;
m_selector.remove(client);
client.disconnect();
it = m_clients.erase(it);
Est-ce normal/prévu que ça fonctionne ainsi ???
Merci et bonne journée ! ;)