Если б в Qt можно писать/читать в сокет из разных потоков, да и сам сокет перемещать по потокам, то может быть легче было б.
Я как-то делал подобное, у меня был класс балансировщик, который при подключении клиента помещал его в поток с наименьшим количеством клиентов. Но на сотне клиентов начиналось нереальное пожирание оперативки, да и производительность начинала сильно падать. В итоге переписал на asio, стало работать быстро и перестало жрать память. Плюс пропала привязанность клиента к потоку, любого клиента обрабатывает любой поток который к этому времени освободился.
И ещё может кто-нибудь объяснить как используются callback-функции применительно к потокам? Как их используются для функций типа sort я понимаю, а вот с потоками никак.
Вообще в кьюте принято посылать сигналы а не вызывать коллбэки.