Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zatrzymać funkcję, zatrzymać nasłuchiwanie portu
marolek
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.04.2006

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


Jak można zatrzymać działanie funkcji php odczytującej plik z serwera w Internecie, w przypadku gdy zbyt długo trwa próba połączenia z tym serwerem?
Przykładowo gdy próba połączenia z serwerem trwa ponad 2 sekundy, chciałbym zatrzymać funkcję i uruchomić ją ponownie z innym adresem pliku (na innym serwerze).

Ten post edytował marolek 3.04.2006, 16:24:50
Go to the top of the page
+Quote Post
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Co to ma wspolnego z php5? Wracajac do pytania to poprostu sie ustawia limit oczekiwania na odpowiedz. http://pl2.php.net/manual/pl/function.curl-setopt.php - tutaj np. masz ta zmienna
Go to the top of the page
+Quote Post
marolek
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.04.2006

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


Cytat(sf)
Co to ma wspolnego z php5?

Fakt, pomyliłem działy, sorry :-)

Trochę zmieniłem moją funkcję i teraz za pomocą fsockopen() łączę się z serwerem i nasłuchuje co się dzieje na pewnym porcie tego serwera.
I chciałbym teraz ograniczyć nie czas połączenia z tym serwerem, a czas nasłuchu. Jeśli serwer nie odpowie żadnym pakietem przez 2 sekundy to chciałbym przerwać funkcję.
Jak to zrobić?
Go to the top of the page
+Quote Post
UsTeK
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.07.2003

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


Prosto z php.net :

  1. <?php
  2.  
  3. $fp = fsockopen("www.example.com", 80);
  4. if (!$fp) {
  5.  echo "Unable to open\n";
  6. } else {
  7.  
  8.  fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
  9.  stream_set_timeout($fp, 2); // <- właśnie o to Ci chodzi!
  10.  $res = fread($fp, 2000);
  11.  
  12.  $info = stream_get_meta_data($fp);
  13.  fclose($fp);
  14.  
  15.  if ($info['timed_out']) {
  16.  echo 'Connection timed out!';
  17.  } else {
  18.  echo $res;
  19.  }
  20.  
  21. }
  22.  
  23. ?>



Pozdrawiam,
UsTeK
Go to the top of the page
+Quote Post
marolek
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 2.04.2006

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


Dzięki UsTeK, rozwiązanie które podałeś dokładnie spełnia moje oczekiwania (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
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: 6.10.2025 - 03:53