人,我有这个代码的问题:
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:
答案 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++;
}