Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Чтение буферов в клиентах/серверах Indy


Автор: JetBird 10.3.2009, 13:19
Вот есть, скажем, вот следующий код отправки почтового сообщения на сервер:

Код
 
  msg := TIdMessage.Create(nil);
  msg.Body.Clear;
  msg.Body.Add(ttext);

  msg.From.Name := 'Leonid Krashenko';
  msg.From.Address := editMailFrom.Text;
  msg.Organization := editOrg.Text;
  msg.Recipients.EMailAddresses := editMailTo.Text;

  with IDSMTP do begin
    1:AuthenticationType := atLogin;
    Username := editLogin.Text;
    Password := editPassword.Text;
    Host := editSMTPServer.Text;
    Port := StrToInt(editPort.Text);
  end;

  LogMsg('Connecting to ' + IdSMTP.Host + ' on port ' + IntToStr(IdSMTP.Port) + '...');
  IdSMTP.Connect();
  LogMsg('ok');
  LogMsg('Sengind message...');
  IdSMTP.Send(msg);
  LogMsg('ok');
  IdSMTP.Disconnect;
  LogMsg('Disconnected from SMTP host');



хотелось бы как-то отследить содержимое буферов во время передачи, м.б. даже вывести всю SMTP-сессию посимвольно (читая из *переданных*/*принятых* данных, а не тех, что еще только собираются быть переданными). как это сделать средствами indy? есть некие перехватчики, некие iohandlers, beginwork, endwork и т.д. и не очень ясно, что именно из этого надо использовать.

заранее спасибо, Леонид.

Автор: JetBird 10.3.2009, 14:51
сейчас я сделал так: создал свой класс TMyMegaIOHandler = class(TIdIOHandlerSocket), переопределил в нем методы send & recv и перехватываю отслыаемые/принятые данные в них.

Автор: Matematik 10.3.2009, 20:09
Посмотри на вкладке "Indy Intercepts"
Компоненты 
IdLogStream
IdLogFile
и т.п.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)