Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1147752670
Близнец
2006-05-16 08:11
2006.06.04
Shellexecute и rar.exe


4-1142351776
Volf_555
2006-03-14 18:56
2006.06.04
Проблема с SendMessage


2-1148049001
GanibalLector
2006-05-19 18:30
2006.06.04
Grids.pas


2-1147846635
novice
2006-05-17 10:17
2006.06.04
Как закрыть приложение на удаленном компьютере?


9-1130724879
MonoLife
2005-10-31 05:14
2006.06.04
"Сохранёнки"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский