сокеты и "конец файла"

Winer

Мимо проходил
сокеты и "конец файла"

пытаюсь считать данные из сокета(fsockopen или socket_connect).
никак не получается определить конец передачи. пробовал всякие условия:
для fscokopen:
feof
strlen(пришедших данных)==0

для socket_connect
пришедшие данные===false
strlen(пришедших данных)==0

никак не получается определить что данные в сокете кончились.
читает пока time_limit не кончится.
как правильно определить что данные в сокете кончились ???

Apache-1.3.29/PHP-4.3.7/Win2000

-~{}~ 27.06.04 16:09:

и ещё, в пришедших данных(ответ веб-сервера) после заголовков почему-то появляется строка (например 6d) и после тела документа тоже(например 0).
 

IL78

Guest
Winer, вот что я нашел в комментариях к feof(). Может, поможет?

[[ Editor's Note: When no "Connection: " request header is sent to an HTTP/1.1 server, some servers will assume 'close', while some will assume 'keep-alive'. If the server assumes 'keep-alive' then feof()==false is to be expected. ]]
When reading remote files, I did not get feof=true at the end files from some servers when using HTTP/1.1.
When using HTTP/1.0, feof functioned correctly for all servers.
 

Winer

Мимо проходил
IL78
спасибо :)) на такие грабли наступил. keep-alive заголовок я убирал , а вот close вместо него не ставил.
всё работает.
 
Сверху