[網絡通訊]poll時另外一線程關閉socket

Q:在Linux下,當一個線程中使用close關閉socket時另外一線程中poll()沒有檢測到事件。編程

A:這是預期的行爲。poll和select響應句柄上的事件,當句柄被關閉,已經不存在了,固然也不會產生相應的事件。 能夠用shutdown來解決該問題。socket

在通訊編程中,shutdown一般是一個較好的解決主動關閉的選項,能夠避免不少close的麻煩。shutdown後,由poll檢測到事件後,再對socket進行close。線程

相關文章
相關標籤/搜索