在網上超了一段select教學代碼,代碼主要結構是main里寫一個死回圈呼叫accept(),然后創建了一個WorkThread()用于呼叫select()
程式啟動后,沒有任何連接的情況下,select一直回傳-1,error是10022
網上查了很多,都沒有給出解釋。
我自己翻了一下ACE的源代碼,發現人家就能回傳正確值(0),然后又發現他select傳遞的fd_set引數有一個socket,而這個socket經查詢居然是accept所用的socket,即:listen用的socket,
有人了解這個問題么?為什么要這樣?寫過select的朋友,你們是怎么寫的?
uj5u.com熱心網友回復:
參考了老外寫的一個實體,他們都是將監聽套接字加入fd集合,然后檢測到read來獲得用戶連接,我已搞明白,此貼完結。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/99834.html
標籤:網絡通信
上一篇:8139D修改MAC地址
