2013-03-05 106 views
1

如果我在無限循環中有一個偵聽套接字,在運行accept函數之前,有什麼方法可以讓我知道它是否與它建立了連接? 我希望能夠做我之前執行一些動作:Winsock監聽和接受函數(C++)

sock_connection[0] = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize) 

具體來說,你可以看到我的sock_connection [0]變量是一個數組。現在,在我實際接受連接之前,我希望能夠遍歷此數組,而不是現在的0,它應該返回數組中的可用點。

那麼,有沒有辦法在運行accept之前檢測連接?

回答

0

使用動態容器會不會更容易?

喜歡的東西:

vector<int> socket_pool; 
int connection = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize); 

if (connection > 0) 
    socket_pool.push_back(connection); 
+0

您將無法在這些插座如果線程被阻塞在選擇通話服務的IO事件。 – 2013-03-06 09:05:39

+0

@infact我沒有嘗試過這與阻塞套接字,但是我在非阻塞套接字服務器中使用此策略,並正常工作。感謝您的評論。 – Pedrom 2013-03-06 12:38:59