![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
512es |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
всем привет!
пишу многопоточный высокопроизводительный сервер на qt. сервер прослушивает коннекты на определённый порт и на каждое входящее соединение создаёт отдельный поток. при каждом пришедшем пакете поток отсылает главному потоку сообщение через customEvent. вроде работает, только не знаю как правильнее заставить все дочерние потоки (или один выборочно) отослать определённый пакет клиентам? закинул все потоки массив QVector и передаю в customEvent главного потока ид того кто отправил. правильный путь ли я выбрал? |
|
|
![]() |
512es |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, customEvent потому что хочу всё что относится к каждому сокету вывести в поток этого сокета. дабы не вешать главный поток при ддос атаках. а как я понял, система сигнал\слот выполняет код в главном потоке...
ViGOur, да, именно менеджер соединений. потоки максимум самостоятельны будут, но главный поток должен принимать и рассылать данные по дочерним потокам. вообщем то я думаю даже не нужно заталкивать класс потоков в QVector... надо просто как то присваивать каждому сокету=потоку свой ИД и по этому ИДу иметь возможность послать данные в поток, где открыт сокет. притом так, чтобы они обработались именно в дочернем потоке (где сокет открыт). вот в том как это правильнее сделать и есть мой вопрос =) |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 1.9.2024, 3:58 |