Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с TIdConnectionIntercept [D7, Win95/98, WinME, NT4, Win2k, WinXP]


samael6 ©   (2007-05-31 02:51:00) 

Здравствуйте!
Такая задача: у меня есть интерсептор TIdConnectionIntercept прикрученный к TidSMTP, тем самым с просматриваю его траффик.
Как я могу изменять что-либо в этом потоке? Правильно ли будет редактировать передаваемый в обработчики (вида: IdConnectionIntercept1Send, IdConnectionIntercept1Receive) стрим (параметр AStream)?
Т.е. сейчас это так:


procedure TForm1.IdConnectionIntercept1Receive(
 ASender: TIdConnectionIntercept; AStream: TStream);
var
   ss: String;
begin
   SetLength(ss, AStream.Size);
   AStream.Read(ss[1], AStream.Size);
   if ss='SOMEDATA' then begin
       ss:='NEWDATA';
       AStream.Seek(0,0);
       AStream.Write(ss[1], length(ss));
       AStream.Size:=length(ss);
   end;
end;


И второе, как я могу из-под перехватчика приема, что-нибудь отправить в сокет? Т.е. например, дождавшись определенной команды, "взять упраление на себя" и ответить "по своему"...

Надеюсь вопрос понятен, хоть и каламбур :)
Спасибо за внимание


Samael6   (2007-05-31 14:43:00) [1]

Спасиба Вам, что-то я не сообразил.
Вопрос можно считать закрытым если по первому вопросу комментариев нет :)


Сергей М.   (2007-05-31 10:09:00) [2]

Send( PChar(ss )^, length(ss));

!!!!!


> не катит


Учить Паскаль до полного просветления !


Samael6   (2007-05-31 02:58:00) [3]

По второму вопросу, пробавал даже так (все в том же обработчике):

TidSMTP(ASender.Connection).Socket.Send(ss, length(ss));

...не катит :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо