Нужно реализовать многопоточный сервис, прослушивающий 1 tcp порт, к нему должны иметь возможность подключиться (и не отключаться) множество клиентов, обработка каждого из которых должна производиться в отдельном потоке в формате вопрос-ответ (вопрос от сервера к клиенту). Ограничение на 1 порт связано в основном с тем, что количество клиентов может быть любым, и открывать 150 портов не самая лучшая идея, тем более придется делать еще 1 сервис, который будет эти порты раздавать, чего бы не хотелось.
Думал попробовать на основе zeromq сделать, чтобы не городить велосипед, может кто посоветует как лучше реализовать?
Виталий Пухов а кстати, вам вообще почему пришла в голову мысль открывать много портов? То что много клиентов коннектятся на один порт это абсолютно стандартная ситуация, никакие порты раздавать не надо.
Виталий Пухов даже если так (1 поток на 1 клиента) - в большинстве реализаций сокетов, один сокет (прослушивающий) принимает коннекты, а при принятии создается новый сокет - который уже вполне можно отдать другому потоку на обслуживание, что и делается в серверах с многопоточной архитектурой (неважно, поток создается или берется из пула). Конечно, это все низкоуровневое решение и врядли оно вам необходимо, тем не менее стоит представлять как это работает в принципе).