![]() |
|
Модераторы: feodorv |
![]()
|
|
| Nil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
Есть задача -написать сервер, который сможет выдерживать нагрузки до 1000-1500 клиентов...
Насколько убийственно будет выделять на каждого клиента по потоку и делать блокируемые сокеты, управляемые событиями ?.. Или стоит посмотреть в сторону асинхронных ?.. У кого есть опыт в этом, как такое реализуется ? Где можно почитать ?.. |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 1 Всего: 106 |
В таком случае, лучше копить клиентов в очередь, использовать вариант с не дожидающимся ответа клиентом, т.е. клиент шлет серверу запрос, сервер запоминает его координаты и ложит в очередь и стартует(или пробуждает) несколько потоков, обрабатывающих данную очередь. (получается так, что клиент, в момент приема информации, сам становится мини-сервером). По управлению производительностью, нужно принять во внимание количество потоков на сервере (в зависимости от рода информации, возможны вариации с делением одного отклика сервера на пакеты, например при передаче больших файлов, базы данных, и т.п.) WinSock - довольно вольная система, реализовать можно практически все, поэтому и предлагаю первое, что пришло в голову. Обычно первое - самое верное... -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |