Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] [fscokopen] sprawdzenie statusu serwera, rozłączenie w trakcie sesji
joshua
post 26.06.2012, 14:06:12
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 8.11.2003
Skąd: z domu...

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


Mam problem z funkcją fsockopen, mam taki kod:
  1. $socket = @fsockopen($server, $port, $errno, $errstr, 30);
  2.  
  3. while(!$socket){
  4. sleep(5);
  5. $socket = @fsockopen($server, $port, $errno, $errstr, 30);
  6. }
  7.  
  8. fputs($socket,"LOGIN $login $password\n");
  9.  
  10. fputs($socket,"SEND $komenda\n");
  11.  
  12. while(1) {
  13.  
  14. while($data = fgets($socket, 256)) {
  15. if($data == "001"){
  16. dosth();
  17. }
  18. }
  19. }


czy jest możliwość sprawdzenia w pętli while, że połączenie z serwerem zostało zerwane i aby następna próba była po jakimś czasie tak jak przykład przed pętlą?
Go to the top of the page
+Quote Post
patrysiek2
post 26.06.2012, 18:30:50
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 5
Dołączył: 8.12.2011
Skąd: Łomża

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


Pan manual wszystko wie...
MANUAL! NIE BÓJ SIĘ! KLIKNIJ!


--------------------
if($problem == 1)
{
header("Location: http://www.forum.php.pl");
}
else
{
thinking();
}
Go to the top of the page
+Quote Post
joshua
post 26.06.2012, 19:09:25
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 8.11.2003
Skąd: z domu...

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


ale tu nie chodzi o przerwanie skryptu, tylko rozłączenie z połaczonym serwerem przez fsockopen. w moim skrypcie nie ma żadnej interakcji bezpośredniej z uzytkownikiem. skrypt działa w tle przez php-cli i po połaczeniu do serwera odpowiada i wysyła żądania. chodzi mi o moment kiedy mogę wyłapać gdy połaczenie przez fsockopen zostanie po drugiej stronie zamknięte-ale chcę to wyłapać w pętli.

//edit:
ok, poradziłem sobie w inny sposób. dzięki

Ten post edytował joshua 26.06.2012, 19:54:37
Go to the top of the page
+Quote Post
kamil4u
post 26.06.2012, 21:30:39
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
//edit:
ok, poradziłem sobie w inny sposób. dzięki


W jaki? Może ktoś będzie miał podobny problem i z chęcią przeczyta jak sobie z tym poradziłeś smile.gif


--------------------
Go to the top of the page
+Quote Post
joshua
post 27.06.2012, 00:13:30
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 8.11.2003
Skąd: z domu...

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


w moim problemie chodziło o to żeby skrypt mógł wykryć czy jest połączenie z serwerem(do którego wcześniej sie podłączył), a w razie braku połączenia podłączył się ponownie. mój skrypt podłącza się do grup serwerów, które regularnie się wyłączają-chodzi o to, aby jak najszybciej podłączyć się z powrotem.

oto modyfikacja kodu, która działa(nie profesjonalna i na pewno dałoby się zrobić to lepiej):
  1. start:
  2.  
  3. $socket = @fsockopen($server, $port, $errno, $errstr, 30);
  4.  
  5. while(!$socket){
  6. sleep(5);
  7. $socket = @fsockopen($server, $port, $errno, $errstr, 30);
  8. }
  9.  
  10. fputs($socket,"LOGIN $login $password\n");
  11. fputs($socket,"SEND $komenda\n");
  12.  
  13. $a = 0;
  14.  
  15. while(!connection_aborted()) {
  16.  
  17. if($a > 1) {
  18. $a = 0;
  19. goto start;
  20. }
  21.  
  22. $a++;
  23. while($data = fgets($socket, 256)) {
  24. $a--;
  25.  
  26. if($data == "001"){
  27. dosth();
  28. }
  29. }
  30. }
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:03