Форум: "Сети";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизРабота с TIdConnectionIntercept Найти похожие ветки
← →
samael6 © (2007-05-31 02:51) [0]Здравствуйте!
Такая задача: у меня есть интерсептор 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 02:58) [1]По второму вопросу, пробавал даже так (все в том же обработчике):
TidSMTP(ASender.Connection).Socket.Send(ss, length(ss));
...не катит :)
← →
Сергей М. © (2007-05-31 10:09) [2]Send(PChar(ss)^, length(ss));
!!!!!
> не катит
Учить Паскаль до полного просветления !
← →
Samael6 © (2007-05-31 14:43) [3]Спасиба Вам, что-то я не сообразил.
Вопрос можно считать закрытым если по первому вопросу комментариев нет :)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.045 c