Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winsock侦听和接受函数(C++)_C++_Winsock_Listen - Fatal编程技术网

Winsock侦听和接受函数(C++)

Winsock侦听和接受函数(C++),c++,winsock,listen,C++,Winsock,Listen,如果我在一个无限循环中有一个监听套接字,在运行accept函数之前,有没有办法知道是否已经与它建立了连接? 我希望能够在执行之前执行一些操作: sock_connection[0] = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize) 具体来说,正如您所看到的,我的sock_connection[0]变量是一个数组。现在,在我实际接受连接之前,我希望能够遍历这个数组,它应该返回数组中的一个可用点,而不是现在的0 那么,

如果我在一个无限循环中有一个监听套接字,在运行accept函数之前,有没有办法知道是否已经与它建立了连接? 我希望能够在执行之前执行一些操作:

sock_connection[0] = accept(sock_listen, (SOCKADDR*)&Address, &AddressSize)
具体来说,正如您所看到的,我的sock_connection[0]变量是一个数组。现在,在我实际接受连接之前,我希望能够遍历这个数组,它应该返回数组中的一个可用点,而不是现在的0


那么,在运行accept之前有没有办法检测连接?

使用动态容器不是更容易吗

比如:

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

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

如果线程在select调用中被阻塞,您将无法为这些套接字上的io事件提供服务。@事实上,我没有用阻塞套接字尝试过这一点,但是我在非阻塞套接字服务器中使用了这一策略,效果很好。谢谢你的评论。