Производительность Tcp-сервера, реализованного с помощью Qt, Экспертный опрос |
Здравствуйте, гость ( Вход | Регистрация )
Производительность Tcp-сервера, реализованного с помощью Qt, Экспертный опрос |
Nokin |
12.8.2008, 16:28
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 12.8.2008 Пользователь №: 262 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток!
Присматриваюсь к Qt уже неделю. До этого дела не имел, однако концепция представляется очень привлекательной. 1. Хочется узнать мнения людей, хорошо знакомых с данным тулкитом вот по какому вопросу. Необходимо реализовать Tcp-сервер, работающий по некоторому протоколу, способный обслуживать одновременно 1000 клиентов легко. Под обслуживанием понимается: -) Авторизация -) Прием и получение сообщений (не более 10 в минуту в среднем по 500 байт) Хватит ли произодительности имеющихся классов? Выбор Qt продиктован необходимостью работы под Windows и Linux. 2. Подскажите, имеется ли в Qt поддержка перекрытого ввода/вывода, портов завершения или других методов асинхронного ввода/вывода 3. Если Вы считаете, что Qt пригодна для реализации поставленной задачи, обозначте, пож-та, в общих чертах решение. Спасибо. |
|
|
niXman |
12.8.2008, 19:55
Сообщение
#2
|
Участник Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: 0 |
Работал с протоколами. Использовал Qt.
Правда не в 1000 потоков. Ну, думаю это не проблема. Хотя присмотрись ка лучше к boost::asio, там эта часть развита по более. И на столько же тормозлива ))) |
|
|
Litkevich Yuriy |
12.8.2008, 21:55
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Nokin, еще это глянь Poco Libraries
|
|
|
Nokin |
13.8.2008, 9:14
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 12.8.2008 Пользователь №: 262 Спасибо сказали: 0 раз(а) Репутация: 0 |
Хотя присмотрись ка лучше к boost::asio, там эта часть развита по более... Nokin, еще это глянь Poco Libraries То или другое можно к Qt прикрутить? Дело ещё и в том, что сервер должен исполняться демоном под Linux и сервисом под Виндой, ну и ещё работать с Oracle, но это, думаю, не проблема. Сообщение отредактировал Nokin - 13.8.2008, 9:24 |
|
|
Litkevich Yuriy |
13.8.2008, 9:33
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ну boost - С+++
а Poco Libraries написан на чистом C++, теперь вопрос можно ли прикрутить С++ к С++. помоему, ответ очевиден |
|
|
sploid |
13.8.2008, 9:39
Сообщение
#6
|
Студент Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: 1 |
Nokin, у тебя вполне возможно все упрется в базу, а не в работу по приему и передачи данных.
В Qt все сокеты асинхронные, что вполне может вызвать осложнения при работе с ними. Для Qt есть фича по созданию демонов и сервисов ( правда она платная и не входит в опен-соурс редакцию ). Т.к. клиентов порядка 1000, то каждого клиента засовывать в отдельный поток может быть накладно. Некоторые специалисты считают что именно для таких задач подойдет событийная ( т.е. Qt-шная ) технология работы с сокетом. |
|
|
Nokin |
13.8.2008, 10:04
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 12.8.2008 Пользователь №: 262 Спасибо сказали: 0 раз(а) Репутация: 0 |
ну boost - С+++ а Poco Libraries написан на чистом C++, теперь вопрос можно ли прикрутить С++ к С++. помоему, ответ очевиден Я понимаю, что к C++ прикрутить С++ можно =). Однако мой малый опыт работы с Qt не позволяет не сомневаться, будет ли это одинаково работать на разных платформах. По-видимому, будет. Спасибо. |
|
|
sploid |
13.8.2008, 10:09
Сообщение
#8
|
Студент Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: 1 |
при прикручивании каких-либо библиотек к Qt необходимо аккуратно обращаться с Qt-шными объектами из разных потоков, т.к. они этого не любят. Например работать с сокетом из разных потоков нежелательно или вообще нельзя, точно не помню.
|
|
|
Nokin |
13.8.2008, 10:10
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 17 Регистрация: 12.8.2008 Пользователь №: 262 Спасибо сказали: 0 раз(а) Репутация: 0 |
Nokin, у тебя вполне возможно все упрется в базу, а не в работу по приему и передачи данных. Sploid, поясни пож-та. Упрётся: это в плане совместимости (драйвера к БД) или в плане производительности? Для Qt есть фича по созданию демонов и сервисов ( правда она платная и не входит в опен-соурс редакцию ). Знаю, не смущает. Т.к. клиентов порядка 1000, то каждого клиента засовывать в отдельный поток может быть накладно. Некоторые специалисты считают что именно для таких задач подойдет событийная ( т.е. Qt-шная ) технология работы с сокетом. Я тоже считаю, что 1000 потоков в приложении - это перебор. Событийная технология - это слот-сигнальная? |
|
|
sploid |
13.8.2008, 10:32
Сообщение
#10
|
Студент Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: 1 |
упрется в плане производительности.
да, слот-сигнальная. |
|
|
Текстовая версия | Сейчас: 21.1.2025, 6:32 |