Сколько клиентов может подключить к TidTCPServer
в то же время? Я использовал Indy10, DelphiXE2, а target os - Windows Server 2003.Макс клиентов Indy?
Есть ли лучший вариант Вместо Indy для delphi?
Сколько клиентов может подключить к TidTCPServer
в то же время? Я использовал Indy10, DelphiXE2, а target os - Windows Server 2003.Макс клиентов Indy?
Есть ли лучший вариант Вместо Indy для delphi?
По умолчанию MaxConnections установлен в 0, поэтому количество активных потоков не проверяется сервером Indy, прежде чем принимать другое соединение, но в основном это зависит от того, что клиенты делают на сервере. Например, если ваш сервер принимает клиентское соединение, а затем вычисляет pie до триллиона цифр в контексте этого потока клиентов, вы получите значительно меньшее количество подключений, обрабатываемых должным образом, чем если вы передаете работу другому процессу. В основном, ваш результат будет зависеть непосредственно от выполняемых задач.
Для получения общего ответа ... если вы отмените размер стека по умолчанию, выделенный для каждого потока, у вас может быть до нескольких тысяч подключений в 32-разрядном серверном приложении, но, вероятно, не намного больше. См.: What's the maximum number of threads in Windows Server 2003? и http://www.deltics.co.nz/blog/?p=1330
Также проверьте свойство ListenQueue, значение по умолчанию - 15. По-видимому, ОС может увеличить ее дальше ... Я не знаю текущую очередь Windows Server по умолчанию, но я обычно немного увеличиваю количество по умолчанию.
Нижняя линия - довести до тысячи активных потоков/соединений, и вы, скорее всего, ударитесь о стену раньше, чем позже.
Однако многие клиенты ОС могут обрабатывать доступные ресурсы. Имейте в виду, что каждый подключенный клиент использует свой собственный поток, поэтому вы должны иметь фабрику в размере потока по умолчанию по умолчанию.