Non hai specificato se stai lavorando con TCP o UDP.
In ogni caso il tuo socket 'bindato' sulla porta 10000 aprirà per forza di cose una nuova porta per ogni nuova connessione la quale verrà chiusa una volta che il client si sarà disconnesso.

dopo un minuto mi ritrovo con una infinità di porte che sono state aperte e chiuse (quindi una ogni 500 millisecondi)
Se ti stai riferendo agli stati quali CLOSE_WAIT, FIN_WAIT e cose di questo tipo non c'è niente di cui preoccuparsi: la connessione è gia chiusa. Quegli stati spariscono dopo qualche decina di secondi.

In una situazioni di molti utenti collegati, quali problemi potrei avere?
Se molti client sono connessi simultaneamente nello stesso momento potresti intercorrere in problemi di performance (ottimista) fino ad arrivare a DoS (pessimista), dipendentemente dal numero di client connessi e dal lavoro computazionale che il server svolge per servirli.
In questi casi, specialmente se tali socket li gestisci tramite select(), poll() o affini, è sempre bene settare un limite massimo di connessioni accettabili (es: 512) superato il quale la connessione di eventuali altri client viene rifiutata.