![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с 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));
...не катит :)