Форум: "Сети";
Текущий архив: 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.04 c