-
Здравствуйте.
Кто в курсе - подскажите, пожалуйста, как использовать компоненты IdLogFile и IdLogDebug для протоколирования подключений клиентов к IdTcpServer и IdMappedPort в Indy9 в серверном приложении?
В событиях Intercept серверных компонентов названия протоколирующих компонентов не появляются, read-only свойство IsClient = True не знаю где и как правильно переопределить (если это нужно и возможно), в Интернете конкретных советов по этому поводу тоже не нашёл.
В каком направлении двигаться?
Буду благодарен за любую информацию.
-
> названия протоколирующих компонентов не появляются
Потому что ты пытаешься задействовать клиентские (а не серверные) протоколирующие компоненты.
В 10-ке серверные - это IdServerInterceptLogFile и IdServerInterceptLogEvent
Не помню как в 9-ке, но вероятно и там они имеются
-
> В 10-ке серверные - это IdServerInterceptLogFile и IdServerInterceptLogEvent
>
> Не помню как в 9-ке, но вероятно и там они имеются
> <Цитата>
Была бы 10-ка - не было бы вопроса.
В том-то и проблема, что в 9-ке их нет. А как применить то что есть - непонятно.
-
Ну поставь 10-ку, долго ли ?
Рано или поздно все равно придется на 10-ку перейти ..
-
> Ну поставь 10-ку, долго ли ?
Да в этом направлении я и сам уже второй день размышляю... :-) :-) :-)
Всё-таки интересно: как народ жил, когда десятки не было? Ведь проблема-то была - её же, судя по радостным восклицаниям на форумах, как-то же решали... Но вот примером поделиться никто не захотел.
Может, кто-нибудь всё же в курсе, как решить эту задачу "в лоб", никуда не мигрируя?
К тому же, переход на 10-ку может создать больше проблем, чем облегчений: из-за несовпадения свойств у многих компонентов может потребоваться переделывать весь проект, чего и врагу не пожелаешь.
-
> как народ жил, когда десятки не было?
Хреново жил .. Да и сейчас, при 10-ке, не многим лучше)
Старые 9-шные глюки-недоработки подчистили-подправили, новые 10-шные добавили..
Вот такая селяви, панимаишь)
-
> Сергей М. (15.09.2009 13:29:05) [5]
Я бы сказал хуже, подчистили подправили и полностью переделали, теперь оно стало очень сложным и что делать без примеров и нормальной документации, с гигантской справкой, за которой теряется концепция работы.
-
> Anatoly Podgoretsky © (15.09.09 13:55) [6]
> полностью переделали
Ну радикальная переделка там, разумеется, сама собой напрашивалась: тошнило от одного взгляда на исходники..
Короче, нетленка Черномырдина и у индейцев актуальна)
-
Короче, вы оба хотите сказать, что проще переквалифицироваться в управдомы, чем получить с помощью компонентов Indy9 протокол серверных подключений? :-)
-
> теперь оно стало очень сложным и что делать без примеров
> и нормальной документации, с гигантской справкой, за которой
> теряется концепция работы.
За справедливость этого утверждения голосую всеми двумя руками!
Зачем творить суперзаумные вещи, а потом никому не объяснять, как ими следует пользоваться?
-
> Сергей М. (15.09.2009 14:22:07) [7]
А сейчас не тошнит?
Я уже не смотрел в Инди10
-
> ABolnykh © (15.09.09 15:16) [8]
У тебя есть альтернатива - событие OnConnect.
Прикрутить к нему протоколирование - простейшая задача.
-
> А сейчас не тошнит?
Сейчас хоть какая-то общая концептуальная схема вырисовывается, пусть и шибко заумная).. Многое теперь можно затачивать под свои задачи, не перекраивая исходники..
9-ку же иначе как говнокодом назвать было нельзя.
-
> ABolnykh (15.09.2009 15:16:08) [8]
В принципе да проще, поскольку не все компоненты рабочии и почти все непрозрачные.
я несколько раз был вынужден использовать компоненты Инди, и всегда в итоге получалось на ICS
Потеряное время жалко, но второй раз я потерял только день, а первый неделю, чтобы понять какая это гадость ваша заливная рыба.
Конечно простые случаи на Инди решаются легко, но чем дальше от протореной дороги, тем хуже.
Я не в курсе, как с этим дело обстоит по части TIdLogFile.
-
> У тебя есть альтернатива - событие OnConnect.
> Прикрутить к нему протоколирование - простейшая задача.
Можно, конечно, и так.
А чем узнать, какой IP ко мне подключился?
-
см. TIdSocketHandle.PeerIP
На объект этого класса выйдешь через параметр, передаваемый в обработчик события
-
> ABolnykh (15.09.2009 16:47:14) [14]
Вроде в Инди это IdContext
-
Как-то так:
PeerIP := AThread.Connection.PeerIP;
PeerPort := AThread.Connection.PeerPort;
> Anatoly Podgoretsky © (15.09.09 16:59) [16]
Про 9-ку же речь пока у автора идет, насколько я понимаю ..
А IdContext родился в 10-ке, похоронив IdPeerThread
-
> Вроде в Инди это IdContext
Завтра с утра попробую реализнуть на свежую голову.
Хотя любопытство по поводу IdLogFile всё равно осталось. Завтра, возможно, попытаю самих разработчиков на их форумах по поводу использования их детища.
Спасибо всем!!!
-
> попытаю самих разработчиков
Скорее всего они отправят тебя лесом, порекомендовав перейти на 10-ку)
-
> [13] Anatoly Podgoretsky © (15.09.09 16:25)
> Конечно простые случаи на Инди решаются легко, но чем дальше
> от протореной дороги, тем хуже.
эт точно. инди отличная вещь, но только касаемо простых TCP/IP и UDP компонентов. Компоненты, реализующие прикладные протоколы вызывают вопросы.
-
> Сергей М. (15.09.2009 17:02:17) [17]
Да я уже давно запутался, где что появилось, а что бы не помнить ушел на другие компоненты и не жалею.
-
> Сергей М. (15.09.2009 17:14:19) [19]
Но более вероятно предложат решить проблему, но не бескорыстно.
-
> Eraser (15.09.2009 21:01:20) [20]
У меня уже не сохранились проекты, но по резултатам, уже UDP надо относить к сложным, по причине трудно или совсем не решаемых вопросов. Недавно мучался с отправкой UDP запросов. Но не долго мучался, только до вечера.
-
> [23] Anatoly Podgoretsky © (16.09.09 11:54)
да уж, возможно UPD вообще проще через API реализовать.