se mi dai un po di tempo ti faccio una struttura base
che usa i forks e le socket asincrone
in questo modo fai una cosa molto semplice
ad es apri 50 forks e poi ogni forks gestisce 20 sockets (ovvero 20 connessioni)
20 connessioni * 50 = 1000 a volta
lui tiene la quantità di forks aperte a 50 e queste comunicano tramite una socket unix passando le informazioni che devono passare in forma di array serializzato definendo il fork da cui vengono. Dall'array serializzato leggi quello che ti serve
in questo modo nn accoppi il picci xche 50 fork sono abb poche e vai abbastanza veloce
credo che in un 2/3 ore dovresti finire di fare il tutto
ovviamente se hai una macchina + potente con banda maggiore puoi anche incrementare il numero di sockets e forks contemporanei
xo x fare il tutto c'ho bisogno un po di tempo))