Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прокси на Delphi 
:(
    Опции темы
mai62
Дата 20.5.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.2.2006

Репутация: 2
Всего: 3



Демо
Допускаю, что я что-то не понимаю, но разницы в этих двух цитатах я не вижу.
Не понимаю почему 
Цитата
А вот "Прокси2" - это уже чужой прокси-сервер, и он будет в цепочке последним.

Почему последним? Теоретически описанным мной способом можно соединить в цепочку сколько угодно проки-серверов (мне так кажется, если я не прав, то в чем?).

соединяемся с Прокси1
> connect Прокси2 http1.1
  < 200 OK
> connect Прокси3 http1.1
  < 200 OK
> connect Прокси4 http1.1
  < 200 OK
...
> connect ПроксиN http1.1
  < 200 OK
...
> connect Вожделенный_Сервер http1.1
 
PM MAIL   Вверх
Демо
Дата 21.5.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 3
Всего: 50



Цитата(mai62 @  20.5.2006,  21:51 Найти цитируемый пост)
Почему последним? Теоретически описанным мной способом можно соединить в цепочку сколько угодно проки-серверов (мне так кажется, если я не прав, то в чем?).


Теория без практики - это как камасутра в картинках.

Протокол HTTP - это вообще-то несколько более сложная вещь, нежели просто Connect.
Приведи заголовки HTTP-запросов в каждом случае, чтобы разговор был более предметный. 


--------------------
    
PM MAIL ICQ Skype   Вверх
mai62
Дата 21.5.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.2.2006

Репутация: 2
Всего: 3



Демо
Цитата
Теория без практики - это как камасутра в картинках.

На практике так на практике, вот
Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdTCPClient, StdCtrls, IdRFCReply;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  IdTCPClient: TIdTCPClient;
  repl: TIdRFCReply;
  empty: Integer;
  s, s1: String;
begin
  IdTCPClient:= TIdTCPClient.Create(nil);
  try
    IdTCPClient.Port:= 8080;
    IdTCPClient.Host:= '127.0.0.1';
    IdTCPClient.Connect;
    IdTCPClient.SendCmd('CONNECT 192.168.55.2:8080 HTTP/1.1'#13#10#13#10);
    repl:= IdTCPClient.LastCmdResult;
    if repl.ReplyExists then
    begin
      Memo1.Lines.AddStrings(repl.Text);
      if (Pos('200', repl.Text[0])>0) then
      begin
        IdTCPClient.SendCmd(
'GET http://mail.ru HTTP/1.1'#13#10+
'Accept: text/html,text/plain;q=0.7,image/png,image/jpeg,image/gif;q=0.4,*/*;q=0.6'#13#10+
'User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'#13#10+
'Host: mail.ru'#13#10+
'Proxy-Connection: close'#13#10#13#10);
        empty:= 0; s:='';
        while(True) do
        begin
          sleep(100);
          s1:= IdTCPClient.CurrentReadBuffer;
          if Length(s1)=0 then Inc(empty) else
          begin
            empty:= 0;
            s:= s+s1;
          end;
          if empty>30 then break;
        end;
        Memo1.Lines.Add(s);
      end;
    end;
  finally
    IdTCPClient.Disconnect;
    IdTCPClient.Free;
  end;
end;

end.

На форму нужно положить Memo и кнопку.
Нажмите кнопку и в Memo загрузится текст страницы с mail.ru. Я пробросил канал через 2 http-прокси:
127.0.0.1:8080
192.168.55.2:8080
Можете испытать код с другим количечтвом прокси.  

Это сообщение отредактировал(а) mai62 - 21.5.2006, 18:00
PM MAIL   Вверх
Демо
Дата 21.5.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 3
Всего: 50



mai62, 
Спасибо.
Я уже обнаружил некоторую информацию о такой возможности. Буду изучать. 


--------------------
    
PM MAIL ICQ Skype   Вверх
Ibragim
Дата 11.9.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Ув. 
mai62,  (а может кто-то еще откликнется smile )
не могли бы Вы также рассказать, как сделать работу с TIdTCPClient асинхронной?
То есть хотелось бы не ждать ответа на SendCmd, а послать команду, положим

Код

IdTCPClient.SendCmd(
'GET http://mail.ru HTTP/1.1'#13#10+
'Accept: text/html,text/plain;q=0.7,image/png,image/jpeg,image/gif;q=0.4,*/*;q=0.6'#13#10+
'User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'#13#10+
'Host: mail.ru'#13#10);


и работать дальше (чтобы процедура не останавливалась), а потом спустя некоторое время посмотреть, есть ли результат, желательно при возникновении какого-либо события.

Заранее спасибо.

Это сообщение отредактировал(а) Ibragim - 11.9.2006, 14:33
PM MAIL   Вверх
mai62
Дата 11.9.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.2.2006

Репутация: 2
Всего: 3



Цитата(Ibragim @  11.9.2006,  14:32 Найти цитируемый пост)
не могли бы Вы также рассказать, как сделать работу с TIdTCPClient асинхронной?

TIdTCPClient не может работать в асинхронном режиме. В аснхронном режиме работает, например, Internet Component Suite (http://www.overbyte.be/)

PM MAIL   Вверх
Buhalich
Дата 14.9.2006, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.9.2006

Репутация: нет
Всего: нет



Ibragim, а с сокетами нет возможности работать?
PM MAIL   Вверх
Romikgy
Дата 15.9.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Ibragim @  11.9.2006,  13:32 Найти цитируемый пост)
как сделать работу с TIdTCPClient асинхронной?

засунь в отдельный поток и будет те щастье smile
Цитата(Buhalich @  14.9.2006,  22:35 Найти цитируемый пост)
а с сокетами нет возможности работать? 

есть возможность , но мороки имхо на порядок больше


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ibragim
Дата 15.9.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



to Buhalich 

 Есть такая возможность. СОСВСЕМ много мороки. Уже сделано так, как советовал Romikqy: 

Цитата

засунь в отдельный поток и будет те щастье 


Вот тока счастья пока нет, поглючивают потоки у меня... пока разбираюсь.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.