Я только начинаю узнавать, как работает сетевое программирование в C, и я написал небольшую программу, которая отправляет сообщения на терминал UNIX и из него. Я использую pthreads в своей программе, один из которых по существу просто ждет recvfrom()
, чтобы получить сообщение.Отмена UDP recvfrom в C на Unix
Тем не менее, я хочу иметь возможность закрыть все темы должным образом, если пользователи захотят выйти из программы. То, как я его установил прямо сейчас, другой поток просто отменяет поток, ожидающий возврата, но я беспокоюсь, что это может быть не очень хорошая идея, так как я оставляю сокеты незакрытыми, и я не освобождаю всю память. выделены.
Есть ли способ отменить вызов recvfrom()
или каким-то образом запустить определенную процедуру после отмены pthread?
Спасибо.