2013-03-05 46 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