![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Добрый день.
Написал небольшой код по перезагрузке роутера с помощью компонента IdTelnet. Роутер перезагружается, но после выполнения IdTelnet1.Disconnect происходит сообщение об ошибке.
Если сделать просто IdTelnet1.Connected, а затем IdTelnet1.Disconnect - ошибки никакой не происходит. Может что-то я не дописал, кто сталкивался, помогите. |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
Может просто сделать аналогичную проверку и для дисконнекта, да и обернуть это все в блок try
P.S. А если у роутера логин и пароль не admin admin, будете перекомпилировать проект? Это сообщение отредактировал(а) Vas - 11.1.2014, 09:40 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
да, я делаю для своего роутера, п.э. логин и пароль такие и оставлю. А вот по поводу кода что вы привели
try .. except - сдесь можно отловить ошибку но не выводить её никуда, просто чтоб программа отработала и "корректно" завершила работу? |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
Можно, оставьте блок except пустым
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 4 Всего: 133 |
Одному мне кажется, что при перезагрузке роутера дисконект происходит автоматически?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
Аналогично, потому в примере я и добавил проверку на установленное соединение перед дисконнектом. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
пробовал, после перезагрузки, проверка соединения показывала, что соединение оставалось, так что диссконнект необходим
|
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
А почему тогда ошибка валится при дисконнекте?
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Delvish |
|
|||
![]() oO ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 13.12.2006 Репутация: нет Всего: 4 |
Как только ты посылаешь команду роутеру на перезагрузку, тот уходит в перезагрузку и, соответственно, тут же обрывает все подключения и тушит все демоны (KILL и TERM какбэ). Так что у тебя связь со стороны роутера обрывается. Таким образом, команда на дисконнект тебе не нужна - дисконнект уже за тебя произведен роутером.
Только что проверил - если хост разрывает соединение, то IdTelnet.Connected при проверке возвращает False и можно смело опять пытаться соединиться |
|||
|
||||
razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Странно конечно, я после кода перезагрузки, добавил такой вот код
и он не отработал, получается что соединение осталось. |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 6 Всего: 72 |
Варианта два: 1. Роутер начал процедуру перезагрузки, но еще не разорвал соединение (Ваш компьютер тоже не моментально выключается). 2. Соединение не закрывается, а грубо "рвется". В этом случает уведомления корреспондента не производится, узнать о том - живо соединение или нет, можно только попытавшись отправить в него что-нибудь. В этом случае, если соединение "мертво", будет ошибка с последующим дисконнектом. |
|||
|
||||
razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |