Bonjour,
voila j'ai créé via la library boost un serveur, et j'arrive a récupérer les informations de mon client. Le probleme est quand je déconnecte mon client du serveur mon code plante. J'aimerai en faite que lorsque je déconnecte mon client du serveur, que mon serveur attende qu'un autre client se connecte mais je n'arrive pas à réaliser cette étape.
Voici mon code :
lorsque je déconnecte mon client, j'ai le message d'erreur suivant :Code:// Création du service principal et du résolveur. boost::asio::io_service ios; // Création de l'acceptor avec le port d'écoute 30000 et une adresse quelconque de type IPv4 // (1) tcp::acceptor acceptor(ios, tcp::endpoint(tcp::v4(), 30000)); char buffer[256]; // Création d'une socket tcp::socket socket(ios); // (3) while(1){ std::cout << "en attente du client..." << std::endl; acceptor.accept(socket); // on attend qu'un client se connect std::cout << "Client connected ! " << std::endl; while (acceptor.is_open()) { try{ boost::asio::read(socket, boost::asio::buffer(buffer)); } catch(std::exception& e){ std::cout << "client left" << std::endl; acceptor.close(); break; } std::string message = buffer; std::cout << "message recu : " << message << std::endl; } }
accept : already open
Merci d'avance pour votre aide
-----