momch, j'ai essayé poll comme tu m'avais conseillé.
Ca m'a l'air très bien sauf que ça ne foncionne pas comme c'est écrit dans les pages de man
Code :
- pollfds.fd=socket_client;
- pollfds.events = POLLIN;
- rc = poll((struct pollfd *) & pollfds, 1, -1);
- if(rc == -1){
- perror("poll" );
- exit(1);
- }
- fprintf(stdout,"rc=%d, et revent=%hd\n",rc,pollfds.revents);
- if(pollfds.revents == POLLHUP)
- {
- puts("POLLHUP !!" );
- exit(1);
- }
|
Ce bout de code fait partie du code du client.
Je lance le serveur, je lance le client, le serveur envoit qqch au client => le client lit en boucle sur sa socket
Je stoppe le serveur => normalement, poll devrait me renvoyer POLLHUP mais il continue à renvoye POLLIN