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 :

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;
	    }
    }
lorsque je déconnecte mon client, j'ai le message d'erreur suivant :
accept : already open


Merci d'avance pour votre aide