[SFML 2.1] Serwer akceptuje tylko jedno połączenie
Ostatnio zmodyfikowano 2014-01-28 19:01
CodeMeister Temat założony przez niniejszego użytkownika |
[SFML 2.1] Serwer akceptuje tylko jedno połączenie » 2014-01-27 22:17:15 Witam mam problem jak w temacie, nie wiem co może być tego przyczyną kod: std::vector < sf::TcpSocket > clients;
sf::TcpListener listenerSocket; if( listenerSocket.listen( port ) != sf::Socket::Done ) { std::cout << " [!] Wrong port\n"; return; }
std::cout << " [+] Waiting for connections...";
sf::SocketSelector selector; selector.add( listenerSocket );
while( true && configured ) { if( selector.wait( sf::seconds( 0.1 ) ) ) { if( selector.isReady( listenerSocket ) ) { sf::TcpSocket * newClient = new sf::TcpSocket; if( listenerSocket.accept( * newClient ) == sf::Socket::Done ) { clients.push_back( newClient ); selector.add( * newClient ); std::cout << "\n [+] Connected new client - " << newClient->getRemoteAddress() << std::endl; } else { delete newClient; std::cout << " [!] Error with new connection\n"; } } else { for( size_t index = 0; index < clients.size(); index++ ) { sf::TcpSocket & client = *( clients[ index ] ); if( selector.isReady( client ) ) { sf::Packet packet; if( client.receive( packet ) == sf::Socket::Done ) { std::cout << " [>] Data send by " << client.getRemoteAddress() << "\n"; std::string request; packet >> request; for( int i = 0; i > clients.size(); i++ ) { if( i != index ) clients[ i ]->send( packet ); } } } } } }
nie łączy się z drugim klientem ale wyświetla że został połączony po tym jak klient który był wcześniej połączony się rozłączył. Mam nadzieję że ktoś zrozumie to zdanie :D i pomoże, proszę o szybką pomoc bo pilnie potrzebuję mieć działający serwer na jutro ;) |
|
RazzorFlame |
» 2014-01-28 19:01:49 for( int i = 0; i > clients.size(); i++ ) |
Coś mi się wydaje że warunek troche tutaj nie pasuje ;) |
|
« 1 » |