что-то не получается получить правильно данные из броузера..
От: Xaep Россия http://xaep.7ka.mipt.ru
Дата: 05.03.04 18:39
Оценка:
Пытаюсь написать свою прокси. (зачем? потому что — думаю, чтобы решать подобные проблемы и больше никогда на них не попадаться.)

Вобщем не получается получить верно данные из броузера...

вот этим кодом

while ((nbytes = recv(ns, buf, sizeof(buf), 0))!=0)
{
.............
}


читаю из заранее созданного сокета соединения с броузером...
получаю все данные.... за одну итерацию цикла и казалось бы на второй итерации цикла — должен произойти его конец (так как все из сокета прочитанно), но нет.... программа уходит в задумие... и просто пытается из сокета прочитать....

как это отследить? Как проверить, что действительно все от клиента полученно.


P.S. Кстати, если броузер остановить. То коннект все равно не рвется... И программа все равно висит... Лишь по закрытию броузера, программа отрабатывает... Но возвращать данные уже не куда...


Подскажите как быть?
Re: что-то не получается получить правильно данные из броузе
От: butcher Россия http://bu7cher.blogspot.com
Дата: 05.03.04 19:32
Оценка:
Здравствуйте, Xaep,

Вы писали 5 марта 2004 г., 21:39:05:

X> Вобщем не получается получить верно данные из броузера...

X> вот этим кодом

X> while ((nbytes = recv(ns, buf, sizeof(buf), 0))!=0)

X> {
X> .............
X> }

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

X> читаю из заранее созданного сокета соединения с броузером...

X> получаю все данные.... за одну итерацию цикла и казалось бы на
X> второй итерации цикла — должен произойти его конец (так как все из

с чего бы вдруг?

X> сокета прочитанно), но нет.... программа уходит в задумие... и

X> просто пытается из сокета прочитать....

Браузер ведь не закрывает соединение, а ждёт когда вы ему вернёт то,
что он просит. Вы в свою очередь ждёте от него чего-то ещё..

--
С уважением, butcher
Posted via RSDN NNTP Server 1.8 beta

Нет ничего невозможного..
Re: что-то не получается получить правильно данные из броузе
От: Burz  
Дата: 09.03.04 13:22
Оценка:
Здравствуйте, Xaep, Вы писали:


X>как это отследить? Как проверить, что действительно все от клиента полученно.


Обычно в теле идет какая-то завершающая последовательность символов. Например при получение письма по 110 порту это "\r\n.\r\n" в спецификации можешь найти.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.