Разблокировать recvfrom, когда сокет закрыт

Допустим, я запускаю поток для приема на порт. Вызов сокета будет заблокирован при recvfrom. Затем каким-то образом в другом потоке я закрываю сокет.

В Windows это разблокирует recvfrom, и выполнение моего потока прекратится.

В Linux это не разблокирует recvfrom, и в результате мой поток сидит ничего не делать вечно, и выполнение потока не прекращается.

Кто-нибудь может мне помочь с тем, что происходит в Linux? Когда сокет закрыт, я хочу, чтобы recvfrom разблокировал

Я продолжаю читать об использовании select (), но не знаю, как использовать его в моем конкретном случае.

7
задан user657178 17 June 2011 в 18:12
поделиться