Bonjour,

j'ai une boucle d'écoute de ce type dans le main :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
for (;;) {
  addrlen = sizeof(socketaddr);
  int workersock = accept(listensock, (struct sockaddr *)&socketaddr, socklen_t *)&addrlen);
  printf("ICI1\n");
  if (workersock < 0) {
       printf("ICI2\n");
       break;
  }
  [...]
}
printf("FIN\n");
Quand je lance le programme , il se bloque bien sur l'accept, mais à chaque fois que je termine le programme, il ne passe jamais dans les printf et encore moins dans le dernier printf.

Je ne comprend pas pourquoi, c'est surement très bête mais je vois pas, avez-vous une idée ?

J'ai besoin de sortir de la boucle d'écoute lors de la terminaison du programme, pour nettoyer les structures, terminer des threads et fermer des sockets.

Merci d'avance pour votre aide.