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

时间:2018-05-08 19:16:42

标签: 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 );

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

}

GameStart(); - 这个接收/发送数据包的功能一直有效,直到客户端断开连接。

我有一个问题,当一个客户端连接时,第二个客户端被阻止,并且无法进入游戏,如何解决? C:

1 个答案:

答案 0 :(得分:0)

您应该在新主题中调用SELECT LEAST(NVL(DATE_1,TO_DATE('9999-01-01','yyyy-mm-dd')), NVL(DATE_2,TO_DATE('9999-01-01','yyyy-mm-dd')), NVL(DATE_3,TO_DATE('9999-01-01','yyyy-mm-dd'))) FROM MYTABLE。现在GameStart之后无法继续执行。

GameStart()

你应该将所有线程加入你程序的某个地方。

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++;

}