![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброе время суток.
Если вкратце: как узнать размер страницы сайта используя только вин апи. предыстория.. Сначала делал используя компонент 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?) но подозреваю что такое добро вполне быть может) Последний раз редактировалось reqyz, 04.10.2014 в 20:01. |