| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Автоконнект через IdIRC |
| Автор: Elfix 2.8.2007, 19:55 | ||
Привет. Возникла проблема при использовании компонента IdIRC. Вся функциональность программы уже реализована, но теперь возникла проблема. При падении сервера, программа должна сделать попытки соединения на него до тех пор, пока оно не будет установлено. Я реализовал такой подход:
|
| Автор: Elfix 3.8.2007, 00:03 |
| Ну, товарищи прогеры. Неужели никто не болел этим? Я просто вообще не догоняю в чем может быть причина такого бездействия со стороны компонента. |
| Автор: Elfix 3.8.2007, 11:38 |
| Гм. IdIRC - компонент невизуальный :( У меня вся программа в таких потоках, все корректно работает. А вот автоконнект реализовать так и не получилось. Тамер думаю будет работать неэффективно. |
| Автор: Elfix 3.8.2007, 12:08 |
| Компонент IdIRC - невизуальный. У меня вся функциональность программы реализована как раз через работу с этим компонентом в основном и дополнительных потоках. Использовать таймер, думаю будет неэффективно. Нужно чтобы программа не ежеминутно коннектилась к серверу, а незамедлительно, как только сервер стал доступен. |
| Автор: dumb 3.8.2007, 21:47 | ||
| визуальный-невизуальный... нельзя компонентами рулить из разных потоков, не используя синхронизацию. в твоем случае проблема "высосана из пальца", а использование потоков "притянуто за уши". простейший код полностью решает "проблему" реконнекта:
обоснуй. |
| Автор: Elfix 4.8.2007, 05:44 |
| Код не работает. Таймер не включается. Я думаю проблема в том, что событие Disconnect обрабатывается только когда сам клиент вызывает Disconnect, а у меня несколько другая задача - попытаться восстановить связь тогда, когда сервер, наконец, возобновит работу. О таймере. Я думал, что будет предложена несколько другая реализация, когда таймер крутится постоянно, проверяя соединение с сервером. Впринципе меня этот способ бы тоже устроил, но все таки работу с потоком я рассматриваю как наиболее красивый вариант. Никогда при использовании потоков с невизуальными компонентами у меня проблем не возникало. Единственное, прочитав Рихтера наверно убрал бы из процедуры ConnectToServer функцию EndThread. |