2011-06-15 40 views
1

我試圖讓選擇工作正確,它似乎是返回1即使沒有什麼可以在套接字上讀取。所以我最終打電話給recv,因爲沒有任何東西可以閱讀,所以它被封鎖了。使用winsock2選擇

另外令人討厭的是,使用winsock時,每次調用select時都需要調用FD_SET,這與標準實現不一致。

是否還有其他奇怪的怪癖我需要注意?

+0

向我們顯示您的代碼。沒有它,我們可以告訴什麼是錯的。 – Zuljin 2011-06-15 13:02:20

回答

1

我修正了它,但我無法確定問題的原因是什麼。我確實知道,必須使用FD_SET重新設置每個select()呼叫的設置非常重要。根據文檔,在調用select之後,它填寫準備好讀/寫/等的集合。

今天的故事道德是:閱讀文檔。