LINUX.ORG.RU

Несколько QTcpServer'ов

 


0

1

Добрый день, есть приложение написанное на Qt для работы с Tcp подключениями по разным портам. В одном треде для каждого порта создается объект типа QTcpServer, кол-во слушаемых портов может от 10-15 шт. Не будет ли лишним оверхедом создавать в одном треде кучу объектов серверов? На сколько знаю один объект сервера может слушать только один порт. Как лучше подступиться к этому? Один тред - несколько объектов сервера или один тред - один объект сервера?

Note: If you want to handle an incoming connection as a new QTcpSocket object in another thread you have to pass the socketDescriptor to the other thread and create the QTcpSocket object there and use its setSocketDescriptor() method.

Документация предлагает выносить в отдельный поток работу с сокетом, а не весь tcp сервак. Все серваки можно крутить в главном потоке.

ox55ff ★★★★★
()
Ответ на: комментарий от hell_wood

Это зависит от конкретной ситуации. Какая нагрузка и сколько клиентов. Я бы начал с размещения всех серваков в одном потоке.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Ну да, один тред - куча объектов серваков и в этом же треде обрабатываются их QTcpSocket объекты. Во всяком случае на c++ с libevent такое работает.

hell_wood
() автор топика
Ответ на: комментарий от golodranez

Судя по очень беглому проходу по докам — оно уже работает правильно, через то что доступно в системе.

Тогда — все же лучше если его объекты-сервера будут в одном треде, так будет реже (или вообще не будет, например если у него гуй и он хочет чтобы гуй не тупил, то придется создавать отдельный рабочий тред) переключаться контекст меж тредами одного приложения.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Так да, бред городить под один коннект свой тред. Я интересовался как кюти справится, если в одном треде будет несколько tcp серверов кютишных. Там по сути работа по обработке данных не сильно накладная, убедиться, что получен полный пакет и передать его в другой тред, ну и еще что-нить посылать этим клиентам.

hell_wood
() автор топика
Ответ на: комментарий от hell_wood

Ну я следующим же комментом высказал свое мнение. Там в культях все нормально сделано, уж по сокетам то..

deep-purple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.