Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykrywanie konca transmisji do klienta
Forum PHP.pl > Forum > PHP
kiler129
Witajcie!
Napisalem maly serwer ale nie przewidzialem jednego problemu dry.gif
Mianowiecie mam otwartego socket servbera, akceptuje polaczenie i daje fwrite($s, $dane). Problem w tym ze fwrite z zadowloneim po ulamku sekundy konczy dzialanie a dane sie wysylaja.
Wszytko bylo by ok ale za fwrite jest fclose. Po zamknieciu bufor oproznia sie i do klienta docieraja strzepki danych.
Jak wykryc koniec tranferu i dopiero po zakonczeniu zamknac polaczenie?
nevt
spróbuj poczekać na odpowiedź z przeglądarki / docelowego serwera...
  1. <?php
  2. fwrite($fp, $out);
  3. while (!feof($fp))
  4.  fgets($fp, 128);
  5. fclose($fp);
  6. ?>
kiler129
Problem w tym ze przegladarka nie konczy nigdy polaczenia.
Moge zawsze dopisywac sobie dane. Ona nie poinformuje mnie czy wsyztko dostala.
Moze cos schrzanilem w odpowiedzi HTTP?

Kod
HTTP/1.1 500 Internal Server Error
Date: Tue, 18 Nov 08 23:49:24 +0100
Server: Serwerek
Content-Length: 138
Connection: Close
Transfer-Encoding: chunked
Content-Type: text/html

ada
<h2>Aaaaa ... psik!</h2><br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
A gdzie nazdrowie? Serwer kichnol i wygenerowal 500 Error;)
<hr>Dodatkowe info: Nie kombinuj ...

Akurat 500 error mialem pod reka biggrin.gif
nevt
heh - dałeś mi pomógł - a z poprzedniego posta wcale nie wynika, że to pomogło... więc w końcu jak to jest?
pinochet
A czy w HTTP 1.1 nie wysyła się jeszcze wielkość danych ...
polecam sprawdzic czy bedzie dzialalo z HTTP 1.0
Kod
HTTP/1.1 500 Internal Server Error
Date: Tue, 18 Nov 08 23:49:24 +0100
Server: Serwerek
Content-Length: 138
Connection: Close
Transfer-Encoding: chunked
Content-Type: text/html

138
ada
<h2>Aaaaa ... psik!</h2><br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
.<br>
A gdzie nazdrowie? Serwer kichnol i wygenerowal 500 Error;)
<hr>Dodatkowe info: Nie kombinuj ...
kiler129
Nie uwierzycie jakie to bylo proste smile.gif
Wysylalem Connection: Close i polaczne sie zamykalo - tu lezal problem.
Zmianilem na takie cos:

Kod
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive


I nagle serwer zaczal dzialc jak burza (lighttpd sie przy nim chowa ;]).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.