Показать сообщение отдельно
  #1  
Старый 04.10.2014, 19:49
reqyz reqyz вне форума
Начинающий
 
Регистрация: 13.02.2010
Сообщения: 104
Репутация: 10
Смущение WinApi скачать страницу сайта

Доброе время суток.
Если вкратце: как узнать размер страницы сайта используя только вин апи.

предыстория.. Сначала делал используя компонент TWebBrowser, но что логично, из - за графической части, которую никуда не выкинуть скорость выполнения задачи была очень маленькой 500-550 страниц в минуту,

решил использовать компонент ЕIdHTTP, и get() скорость упала в раз 10, подозреваю что из за того что он заного на каждой ссылке проходил утентификацию,

пытался выудить через него winapi но заблудился и окончательно запутался, прослеживая как бегает курсор отладчика..

пока получилась такая ересь:
Код:
function gotolink(s:string):boolean;
var
  ASocket:TSocket;
  LAddr: TSockAddrIn;   // 'http://ШАПКА.ru/ССЫЛКА'  ССЫЛКА - переменная часть
  i:integer;
  VPort:word;
  VIP:word;
  LHost:THostEnt;
begin
  ASocket:=idwinsock2.Socket(2,1,0);
  LAddr.sin_port:=htons(0);
  Bind(ASocket, @LAddr, SizeOf(LAddr));
  i:=SizeOf(LAddr);
  GetSockName(ASocket,PSockAddr(@LAddr),i);
  VPort:=Ntohs(TSockAddr(LAddr).sin_port);
  setsockopt(ASocket,6, 1, '', 4);                     
  LHost := GetHostByName('ШАПКА.ru')^; //в оригинале сайт естественно другой
  connect(ASocket,@LAddr, SizeOf(LAddr));
  i:=SizeOf(LAddr);
  getpeername(ASocket,@LAddr, i);
end;

буду жадным, если спрошу готовый пример на winapi?) но подозреваю что такое добро вполне быть может)
Ответить с цитированием