Конференция "Сети" » Сокеты Windows и прокси сервер
 
  • Медвежонок Пятачок © (06.11.09 12:44) [20]
    проще всего использовать между клиентом и сервером http протокол, а транспорт сделать на xmlhttprequest.
    если браузер у юзера настроен, то все случится само собой
  • FireMan_Alexey © (09.11.09 02:31) [21]
    Проще использовать туннель предназначенный в протоколе НТТР.

    Типа

    CONNECT <имясервера>:<номер порта> HTTP/1.1
    Host: <имясервера>:<номер порта>

    Ждем

    HTTP/1.1 200 OK

    И можем слать что угодно... :)
  • Медвежонок Пятачок © (09.11.09 15:41) [22]
    это если он есть на прокси
  • Андрей Смирнов (01.12.09 08:19) [23]
    Uses: WinInet;

    // При помощи данной процедуры, можно установить Proxy,
    // через которую будет осуществляться работа в Internet, Proxy адрес указывается в
    // формате адрес : порт, например 195.43.67.33:8080.

    procedure ChangeProxy(aProxy: string);
    var
     PIInfo: PInternetProxyInfo;
    begin
     New(PIInfo);
     PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
     PIInfo^.lpszProxy := PChar(aProxy);
     // Список адресов, доступ к которым осуществляется не через прокси
     PIInfo^.lpszProxyBypass := PChar('');
     UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo,
       SizeOf(Internet_Proxy_Info), 0);
     Dispose(PIInfo);
    end;

    // Соединяемся с ЮРЛом с поддержкой прокси

    function GetUrl(const Url: string): string;
    var
     NetHandle: HINTERNET;
     UrlHandle: HINTERNET;
     Buffer: array[0..1024] of char;
     BytesRead: cardinal;
    begin
     Result := '';
     NetHandle := InternetOpen(sfk_n, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

     if Assigned(NetHandle) then
     begin

       UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

       if Assigned(UrlHandle) then
    { UrlHandle правильный? Начинаем загрузку }
       begin
         FillChar(Buffer, SizeOf(Buffer), 0);
         repeat
           Result := Result + Buffer;
           FillChar(Buffer, SizeOf(Buffer), 0);
           InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
         until BytesRead = 0;
         InternetCloseHandle(UrlHandle);
       end
       else
       begin
    { UrlHandle неправильный. Генерируем исключительную ситуацию. }
         raise Exception.CreateFmt('Cannot open URL %s', [Url]);
       end;

       InternetCloseHandle(NetHandle);
     end
     else
    { NetHandle недопустимый. Генерируем исключительную ситуацию }
       raise Exception.Create('Unable to initialize Wininet');
    end;



    (Без авторизации!)
 
Конференция "Сети" » Сокеты Windows и прокси сервер
Есть новые Нет новых   [134437   +30][b:0][p:0.002]