Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
C++ 游戏功能和阻止接受,套接字c++;_C++_Sockets - Fatal编程技术网

C++ 游戏功能和阻止接受,套接字c++;

C++ 游戏功能和阻止接受,套接字c++;,c++,sockets,C++,Sockets,各位,我的问题是这个代码: if( listen( server_socket, 50 ) < 0 ) { perror( "listen" ); exit( 1 ); } while( 1 ) { size = sizeof( client_addr ) client_socket = accept( server_socket, ( struct sockaddr * ) & client_addr, & size ); co

各位,我的问题是这个代码:

if( listen( server_socket, 50 ) < 0 ) {
    perror( "listen" );
    exit( 1 );
}

while( 1 )
{
    size = sizeof( client_addr )
    client_socket = accept( server_socket, ( struct sockaddr * ) & client_addr, & size );

    connection.push_back( client_socket );
    GameStart( clients );
    clients++;

}
if(侦听(服务器\u套接字,50)<0){
佩罗尔(“倾听”);
出口(1);
}
而(1)
{
大小=sizeof(客户地址)
client\u socket=accept(server\u socket,(struct sockaddr*)和client\u addr,&size);
连接。推回(客户端接口);
游戏开始(客户);
客户端++;
}
GameStart()-此功能接收/发送数据包,一直工作到客户端断开连接


我有一个问题,当一个客户端连接,第二个客户端被阻止,无法进入游戏,如何修复它?C:

您应该在新线程中调用
GameStart
。现在,在
GameStart()
之后无法继续执行


tbh,很可能是另一种方式,因为大多数渲染系统(很少有例外)不支持在主系统之外维护上下文thread@Swift这可能是泥吧?
std::vector<std::thread> threads;

while( 1 )
{
    size = sizeof( client_addr )
    client_socket = accept( server_socket, ( struct sockaddr * ) & client_addr, & size );

    connection.push_back( client_socket );

    std::thread th(GameStart, clients);
    threads.push_back(std::move(th));
    clients++;

}
for (auto& th : threads)
{
    th.join();
}