Przyuczam się w C++/SFML i nie mogę ogarnąć prostch rzeczy.

Mogę podłączyć tylko jednego klienta (łączę się za pomocą wielu instancji telnet), nawet jak zakończę połączenie, nic się nie dzieje.

Proszę o nakierownie na dobrą drogę.

Przykładowy kod:

#include	<iostream>
#include	<SFML/Network.hpp>

// maksymalna ilość połączeń
int conn_limit = 4;

// lista podłączonych klientów
std::vector<sf::TcpSocket> client( conn_limit );

// wątek obsługujący klienta
void Client( int conn_id ) {
	while( true ) {
		// połączenie zostało przerwane?
		if( client[ conn_id ].getRemoteAddress() == sf::IpAddress::None ) {
			// wyświetl komunikat
			std::cout << "Klient o identyfikatorze " << conn_id << " przerwał połączenie." << std::endl;

			// zakończ wątek
			break;
		}
	}
}

// główna pętla
int main( int argc, char* argv[] ) {
	// identyfikator połączenia
	int conn_id = 0;

	// otwórz port nasłuchujący na gnieździe;
	sf::TcpListener server;
	server.listen( 1024 );

	// przyjmuj kolejne połączenia nadchodzące
	while( true ) {
		// nawiązano połączenie z klientem?
		if( server.accept( client[ conn_id ] ) == sf::Socket::Done ) {
			std::cout << "Nawiązano połączenie z adresu " << client[ conn_id ].getRemoteAddress() << " otrzymało identyfikator nr " << conn_id << std::endl;
			client[ conn_id ].setBlocking( false );

			// utwórz nowy wątek dla połączenia
			sf::Thread thread( &Client, conn_id );
			thread.launch();

			// ilość połączeń wzrosła, osiągnięto conn_limit? wyłącz serwer
			if( conn_id < conn_limit ) conn_id++;
			else { return 1; }
		}
	}
}