Credo che il problema stia nel fatto che tu rifaccia il bind su connessioni ancora aperte. Anche xche dici che la prima volta funziona tutto mi pare. Anche se la documentazione è per Windows, l'implementazione di windows segue gli standard, qui puoi trovare qualcosa di aiuto in particolare SO_REUSEADDR.