Je viens juste de commencer à apprendre la programmation réseau en C fonctionne, et je l'ai écrit un petit programme qui envoie des messages à partir d'un terminal et UNIX. J'utilise pthreads dans mon programme, dont l'un attend essentiellement recvfrom()
pour recevoir un message.Annuler recvfrom UDP en C sous Unix
Cependant, je veux être en mesure de fermer toutes les discussions correctement si les utilisateurs choisit de quitter le programme. La façon dont je l'ai configuré en ce moment, un thread différent annule le thread en attente sur recvfrom, mais je suis inquiet que ce ne soit pas une bonne idée puisque je laisse les sockets non fermées et je ne libère pas toute la mémoire attribué.
Existe-t-il un moyen d'annuler un appel recvfrom()
ou un moyen d'exécuter une certaine routine lors de l'annulation d'un pthread?
Merci.