Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

Кто юзал Indy при большом к-ве клиентов на сервере?   Найти похожие ветки 

 
alienserg   (2004-06-14 02:19) [0]

Какое количество тредов/connections допустимо на сервере?
Авторы Indy говорят, что поскольку Indy сокеты работают в blocking mode, то неактивный тред практически не потребляет ресурсов и важно в основном количество активно работающих тредов.
У кого есть какой опыт на этот счет?
Есть ли выигрыш в этом смысле от перехода с Indy 9, который не может работать с fibers, к Indy 10, который вроде может?
Аппликация, которую делаю - что-то типа ICQ, т.е. к серверу коннектятся и в основном сокет простаивает, изредка получая сообщения от сервера о прибывших/ушедших клиентах, а переговоры идут напрямую peer2peer.


 
alienserg   (2004-06-14 02:20) [1]

Я имею ввиду TIdTcpServer и connections незакрывающиеся длительное время.


 
Денис   (2004-06-14 09:01) [2]

Привет! Сорри на твой вопрос ответа не знаю, а ты мне не подскажешь? буду очень рад. а то такое ощущение, что ответа не занют даже разработчики Инди    http://delphimaster.net/view/6-1087152399/


 
alexvir   (2004-06-14 09:34) [3]

Похожая проблема. С инди решил не работать и остановился на стандартном TTcpServer. Инди показался перегруженным ненужными функциями.
Один мой знакомый (уважаемый человек, хотя не программист), говорит, что больше 40 коннектов сервер не вытянет... в виду архитектуры винды (имеется в виду именно нити), мол они существенно начнут тормозить работу системы.
В общем я с ним не согласен. Все подтверждается на практике...


 
Erik1   (2004-06-14 10:42) [4]

Тоесть будеш делать свой механизм Super Server? Когда имеется пул тредов, а ты переключаеш контенты для выполнения запросов клиентов? В любом случае коннект держать придется! А это уже отделная нить. Если у тебя неболее 100 конектов одновремено, то незанимайся ерундой, постав Indy и все у тебя будет работать. У меня 1000 тредов работатла довольно сностно, но это была не сетевая задача.
 Если количество соеденений очень большое, то можеш подумать о UDP.


 
alienserg   (2004-06-14 16:28) [5]

alexvir   (14.06.04 09:34) [3]
Инди показался перегруженным ненужными функциями.
То, что в Indy масса всего, это не есть недостаток. Ненужное тебе может вполне оказаться нужным другому. Indy изначально заточен под многотредовось и использует blocking mode. Indy по любому производительнее чем стандартный TTcpServer. В конференции приводили случаи, когда он легко держит 500 активных(по которым идет активная работа) коннектов.

Erik1   (14.06.04 10:42) [4]
Тоесть будеш делать свой механизм Super Server? Когда имеется пул тредов, а ты переключаеш контенты для выполнения запросов клиентов?
Нет, Indy не может этого делать вроде. 1 коннект - 1 тред. Максимум, что может Indy - не уничтожать закрытые треды, а хранить их в ThreadManager и если приходит новый юзер, то запрашивать тред у ThreadManager и только если там нет свободных, то создавать заново.

Денис   (14.06.04 09:01) [2]
В стандартной поставке Indy есть куча примеров, в том числе и по SMTP. Их вполне достаточно для того, чтобы понять, как все работает. А не отвечают тебе потому, что твой вопрос очень сумбурный. Indy SMTP наследуется от Indy TCP:
TIdSMTPServer = class(TIdTCPServer)
А TCP через сокеты только и работает. Зачем ты пытаешься явно использовать сокеты? И вообще непонятно, что ты пытаешься использовать. Всегда указывай какие конкретные компоненты ты используешь, а не просто "сокс".



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
3-1090481956
serg128
2004-07-22 11:39
2004.08.15
Как в вычислимом (Calculated) поле задать маску отображения чисел


4-1089104624
dellax
2004-07-06 13:03
2004.08.15
Эмулирование нажатия сразу двух клавиш


14-1091172897
Kerk
2004-07-30 11:34
2004.08.15
Старт со светофора


1-1091261600
brat2
2004-07-31 12:13
2004.08.15
компоненты лезут без очереди!!!


3-1090299812
Tempo
2004-07-20 09:03
2004.08.15
Как узнать номер новой записи.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский