Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизПрокси с помощью IdMappedPortTCP1 Найти похожие ветки
← →
alex-drob © (2006-05-09 20:17) [0]Что-то я не пойму, прокси может работать только с одним хостом в интернете или нет?
Читал про IdMappedPortTCP1 и везде написан пример что если в браузере ввести ip который указан в настройках IdMappedPortTCP1 то загрузиться страница которая также указана в насройках этого компонента.
А можно ли зделать чтобы при вводе любога адреса в строке браузера IdMappedPortTCP1 обращался бы к тому сайту на который ссылается строка браузера? Или нужно создавать по компоненту на каждый сайт.
← →
Пусик © (2006-05-09 21:13) [1]
> alex-drob © (09.05.06 20:17)
IdMappedPortTCP - это не прокси.
← →
KilkennyCat © (2006-05-09 21:22) [2]Пусик, фото в студию! Такая умная девушка... а вдруг еще и красивая? :)
← →
Пусик © (2006-05-09 21:25) [3]
> KilkennyCat © (09.05.06 21:22) [2]
>
> Пусик, фото в студию! Такая умная девушка... а вдруг еще
> и красивая? :)
щазз
← →
Пусик © (2006-05-09 21:27) [4]
> alex-drob © (09.05.06 20:17)
См. TIdHTTPProxyServer
← →
KilkennyCat © (2006-05-09 21:31) [5]
> [3] Пусик © (09.05.06 21:25)
понятно. некрасивая. Ну так бы сразу и сказала...
← →
Пусик © (2006-05-09 21:34) [6]
> KilkennyCat © (09.05.06 21:31) [5]
>
>
> > [3] Пусик © (09.05.06 21:25)
>
>
> понятно. некрасивая. Ну так бы сразу и сказала...
вот так вот просто, да? дай фотографию да и фсе тут?
← →
KilkennyCat © (2006-05-09 21:36) [7]
> [6] Пусик © (09.05.06 21:34)
не переживай так... зато умная! :)
← →
alex-drob © (2006-05-10 02:24) [8]
> См. TIdHTTPProxyServer
В IdMappedPortTCP1 можно было изменить исходящие и входящие данные, а в TIdHTTPProxyServer я не могу понять как это сделать?
← →
Джо © (2006-05-10 02:42) [9]Обрабатывать OnHTTPDocument, кажется.
← →
alex-drob © (2006-05-10 02:55) [10]
> Обрабатывать OnHTTPDocument, кажется.
Я тож так думаю, но немогу что именно.IdHTTPProxyServer1HTTPDocument(
ASender: TIdHTTPProxyServer; const ADocument: String;
var VStream: TStream; const AHeaders: TIdHeaderList);
ADocument, AHeaders - эти значения поменять нельзя, значит это не то.
VStream - там постоянно нечего нет и размер = 0.
ASender - остаёться здесь, но я не могу найти что именно.
← →
Джо © (2006-05-10 03:02) [11]> ADocument, AHeaders - эти значения поменять нельзя, значит
> это не то.
Зачем менять экз. AHeaders? В нем лежат заголовки, насколько я понимаю. Их можно оттуда удалять/вставлять/менять воспользовавшись соотв. методами этого класса.
ADocument, конечно, менять не нужно. В нем просто находится URL страницы, которую требуют предьявить. Требуют у твоего сервера, разумеется.
> var VStream: TStream
Ну, так сюда и нужно писать содержимое. Откуда ж у него размер будет отличаться от 0, если ты предварительно ничего туда не записал?
← →
alex-drob © (2006-05-10 03:07) [12]Для чего вобще VStream нужен? Что туда можно писать?
← →
Джо © (2006-05-10 03:09) [13]> [11] Джо © (10.05.06 03:02)
Кстати, оказалось еще проще. Это компонет предварительно всё-таки обращается к нужной странице, помещает ее содержимое в VStream и генерирует событие OnHTTPDocument. Так что ни о каком Size=0 речи нет, не обманывай :)
← →
Джо © (2006-05-10 03:10) [14]> [12] alex-drob © (10.05.06 03:07)
> Для чего вобще VStream нужен? Что туда можно писать?
В нем, на момент возникновения событий находятся уже прочитанные данные затребованной браузером страницы.
А что туда писать? Откуда я знаю, что ты туда хочешь писать?!
← →
Джо © (2006-05-10 03:22) [15]В общем, вот накропал элементарный пример обработчика, а то так бесконечно можно разговаривать.
// на запрос любой страницы будем возвращать
// вместо нее свою собственную, сгенерированную нами
procedure TForm22.IdHTTPProxyServer1HTTPDocument(ASender: TIdHTTPProxyServer;
const ADocument: string; var VStream: TStream; const AHeaders: TIdHeaderList);
begin
VStream.Free;
VStream := TStringStream.Create("<HTML> <BODY> Hello </BODY> </HTML>");
end;
Знатоки Инди, ногами сильно не бейте, я этот компонент сегодня впервые вижу :-)
← →
alex-drob © (2006-05-10 03:28) [16]Спасибо за помощь!
А если слаживать значение VStream.size постоянно, таким образом можно получить значение входящего траффика?
← →
alex-drob © (2006-05-10 03:34) [17]Да и ещё вопрос.
Как можно записать значения VStream в переменную string?
Пробую так:
VStream.Read(bf,VStream.Size);
Ошибка AV
← →
Джо © (2006-05-10 03:47) [18]> [17] alex-drob © (10.05.06 03:34)
> Да и ещё вопрос.
> Как можно записать значения VStream в переменную string?var
S: string;
begin
SetLength (S,VStream.Size);
VStream.Read (S[1],VStream.Size);
end;
> А если слаживать значение VStream.size постоянно, таким
> образом можно получить значение входящего траффика?
Ну, не совсем. Трафик разный бывает, далеко не только HTTP. Кроме того, еще размер заголовков нужно считать. И еще всякое :)
← →
alex-drob © (2006-05-10 03:55) [19]Большое спасибо за помощь!
← →
Арт (2006-05-10 11:46) [20]а есть ли какая компанента чтоб можно было также просто реализовать не только http прокси, а tcp в общем?
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c