Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykrywanie konca transmisji do klienta
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Witajcie!
Napisalem maly serwer ale nie przewidzialem jednego problemu (IMG:http://forum.php.pl/style_emoticons/default/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?
Go to the top of the page
+Quote Post
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
kiler129
post
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował kiler129 18.11.2008, 23:55:50
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
pinochet
post
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

Ostrzeżenie: (0%)
-----


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 ...
Go to the top of the page
+Quote Post
kiler129
post
Post #6





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Nie uwierzycie jakie to bylo proste (IMG:http://forum.php.pl/style_emoticons/default/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 ;]).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 02:32