Доброе время суток.
Если вкратце: как узнать размер страницы сайта используя только вин апи.
предыстория.. Сначала делал используя компонент 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?) но подозреваю что такое добро вполне быть может)