Понимаю что вопрос глупый, но как поступить, если необходимо читать данные, по частям приходящие на один и тот же сокет? То есть как узнать, что новый пакет получен? В тех примерах, что нашел, единичный вызов resv идет сразу после connect. Но ведь пакеты поступают с течением какого-то вемени. Пытаюсь читать несколько последовательно получаемых пакетов, после повторного вызова recv само собой получил пустой буфер.
А в чем проблема? Бери и читай. На блокирующемся сокете recv не вернется до тех пор, пока не придут данные или не разорвется соединение. Поэтому просто указывай размер нужной части, вызывай recv и жди.
если рекв вернула 0, значит данные закончались, если не закочались, то уменьшай размер буфера преднозначенного для приема на кол-во которое вернул recv совет: запрос отсылай вида GET /index.html HTTP/1.0 т.е. не 1.1. версии а 1.0 чтобы лишнии байты не появлялись
Все это дело - перехват в IE. Протокол HTTP 1.1. Просто перехватываю resv из wsock32 (то есть сокет создан без моего участия) и во время 1-го вызова перехватчика пытаюсь загрузить всю страницу, подредактировать и полностью передать браузеру. Может я только что глупость сказал, но именно так пытаюсь сделать=). Возможна ли реализация такого способа? Сказывается неопытность - какие именно сокеты использует браузер (любой), зависит ли их тип от целевого сервера (меня поисковики интересуют)? Пробовал - после вызова функции в eax FFFFFFFFh, буфер пустой.
имхо блокируемому сокету нельзя выставить тайм аут, значит используются неблокирумые (асинхронные) это не единственный показатель.. вот еще) прога виснет когда сокет блочный и возникла проблема, а мой браузер продолжает работать.. flipper читай книги, а не чаты.. з.ы. бедны американцы, как только не изощеряются люди, чтоб заработать на них