[Résolu] Passage serveur multiconnexion -> mono-connexion
respawn
Membre
Bonjour,
j'ai un soucis que je ne pensais vraiment pas avoir. J'ai un programme C qui gère plusieurs connexion TCP à l'aide de fork() mais je voudrais maintenant supprimer ce dernier (et donc passer en mono-connexion). Voici la partie concernée de mon code originel :
je pensais pouvoir passer en mono-connexion simplement en supprimant le
je ne comprends vraiment pas. La connexion semble se faire entre mon client et mon serveur mais impossible d'envoyer un paquet ...
Une/Des idée(s) ?
Merci beaucoup
j'ai un soucis que je ne pensais vraiment pas avoir. J'ai un programme C qui gère plusieurs connexion TCP à l'aide de fork() mais je voudrais maintenant supprimer ce dernier (et donc passer en mono-connexion). Voici la partie concernée de mon code originel :
<br />...<br />if (listen(father_socket, 3) == -1) {<br /> printf("Error : cannot wait a connection\n");<br /> exit(1);}<br /><br />Â Â while (1) {<br /><br /> son_socket=accept(father_socket, NULL, NULL);<br /> <br /> if (son_socket == -1) {<br /> printf("Error : cannot accept the connection\n");<br /> exit(1);}<br />Â Â Â <br /> if (fork() == 0) {Â // Son process for multiple connection<br /> close(father_socket);Â Â Â // Close the father socket<br /> handle_request(son_socket); // Request treatment<br /> exit(EXIT_SUCCESS);<br />Â Â Â Â Â Â Â Â }<br /> <br /> close(son_socket);Â Â Â Â Â // Close the son socket<br /> //int *wait_value;<br /> //wait(wait_value);<br />Â Â } /* while (1) */<br />Â Â /* NOTREACHED */<br />Â Â return 0;
je pensais pouvoir passer en mono-connexion simplement en supprimant le
if (fork() == 0)
mais non, rien ... j'ai essayé en enlevant le
close(father_socket);
, en enlevant le while (1) mais rien ...je ne comprends vraiment pas. La connexion semble se faire entre mon client et mon serveur mais impossible d'envoyer un paquet ...
Une/Des idée(s) ?
Merci beaucoup
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voici le code
En ajoutant en return; dans la fonction handle_resquest si (n = read) == 0
Et voilou
A plus