![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Взаимодействие Клиент - Сервер [D6, Win95/98, Win2k]
S@shka © (2003-12-10 12:48:00)
Есть серверное приложение к которому соединяются клиентские и передают порцию данных.
Причем порции данных не большие и частота их передачи не более чем раз в 2 минуты.
Вопрос
Я стою приложение следующим образом:
Клиент подключается, передает данные принимает ответ и отключается.
Почему я так делаю - потому что боюсь держать много висящих просто так клиентов. При том что их число может быть более 1000.
Правильно ли я делаю? Или в моих рассуждениях нет разумного.
Исп-ю Indy компоненты. (связь на основе TCP есно)
Digitman (2003-12-11 08:15:00) [1]
> atruhin
ты вообще представляешь, как внутри организован TIdTCPServer ?
чувствуется - слабо
atruhin (2003-12-11 07:47:00) [2]
>>Digitman © Зачем всё это?
S@shka в своем вопросе поступил почти правильно блокирующий сокет и всё. Если небольшие запросы идут часто можно создать несколько потоков обработки и работать через порт завершения TCompletionPort.
Правда под 95 наверно непойдёт.
Digitman (2003-12-10 13:32:00) [3]
"сервак" здесь ни при чем вообще
ограничением явл-ся макс.кол-во код.потоков в контексте процесса и макс.кол-во код.потоков для ОС в целом
кр.того, ограничением явл-ся макс.кол-во одновременно созданных и существующих гнездовых объектов Winsock
если "боишься", то просто реализуй на стороне сервера логику отвержения новых кл.запросов на коннект, если число уже установленных и активных коннектов равно некоему предельно допустимому значению, в твоем случае, скажем, = 1000.
S@shka (2003-12-10 13:09:00) [4]
Ну...
под каждое новое соединение создается новый поток.
И соответсвенно серверу приходится их держать.
Если в этом смысл. И на каком потоке сервак заглохнет ?
Digitman (2003-12-10 13:03:00) [5]
> потому что боюсь держать много висящих просто так клиентов
"боюсь" - слишком абстрактное и размытое объяснение
боишься ЧЕГО конкретно ?