Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2009, 20:07   #1
shinobi2
 
Регистрация: 14.01.2009
Сообщений: 4
По умолчанию Использование прокси в WinSock

Код:
{$APPTYPE CONSOLE}

uses
  Windows, SysUtils, WinSock;

var
  WSA: TWSAData;
  Sock: TSocket;
  Server: TSockAddr;

function LookupName(host: string): TInAddr;
var
  HostEnt: PHostEnt;
  InAddr: TInAddr;
begin
  HostEnt := gethostbyname(PChar(host));
  FillChar(InAddr, SizeOf(InAddr), 0);
  if HostEnt <> nil then
    begin
      with InAddr, HostEnt^ do
        begin
          S_un_b.s_b1 := h_addr^[0];
          S_un_b.s_b2 := h_addr^[1];
          S_un_b.s_b3 := h_addr^[2];
          S_un_b.s_b4 := h_addr^[3];
        end;
    end;
  Result := InAddr;
end;

procedure SendString(s: string);
var
  Buffer: array[0..255] of char;
begin
  StrPCopy(Buffer, s);
  Send(Sock, Buffer, length(s), 0);
end;

var
  Buffer: array[0..255] of char;
  Bufflen, Recved: SmallInt;

begin
  WSAStartup(MAKEWORD(1,0), WSA);
  Sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  ZeroMemory(@Server,SizeOf(Server));
  Server.sin_family:=AF_INET;
  Server.sin_port:=htons(80);
  Server.sin_addr:=LookupName('www.lol.ru');
  if Connect(Sock, Server, SizeOf(Server)) = 0 then
    begin
      SendString('GET / HTTP/1.1'#13#10);
      SendString('Host: www.lol.ru'#13#10);
      SendString('Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'#13#10);
      SendString('Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'#13#10);
      SendString('Accept-Encoding: gzip,deflate'#13#10);
      SendString('Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10);
      SendString(#13#10);
    end;
  repeat
    Bufflen := SizeOf(Buffer);
    Recved := Recv(Sock, Buffer, Bufflen, 0);
    write(Buffer);
  until Recved = 0;
  CloseSocket(Sock);
  WSACleanup;
  readln;
end.
Вот код GET запроса на сайт через WinSock, объясните пожалуйста как в данном коде сделать поддержку прокси???
shinobi2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События WinSock telcomp Win Api 1 13.01.2009 09:26
Winsock не соединяет Da$aD Работа с сетью в Delphi 0 11.07.2008 22:57
Proxy в WinSock SHEI'TI Работа с сетью в Delphi 3 29.03.2008 18:27
работа с WinSock Agasfer Работа с сетью в Delphi 1 13.02.2008 18:54
big troubles with winsock joker Работа с сетью в Delphi 3 28.09.2007 23:16