Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pobieranie czasu z internetu

Ostatnio zmodyfikowano 2013-01-14 21:21
Autor Wiadomość
Artekp999
Temat założony przez niniejszego użytkownika
Pobieranie czasu z internetu
» 2013-01-14 16:12:45
W czym problem:
Mam napisany skrypt W PHP który sprawdza czy program jest włączony czy nie.
np. PHP pobiera czas z neta np 2013-01-14 16:02:23 program w C++ wysyła do bazy datę w komputerze np. 2012-03-22 23:03:02 I wtedy błędnie oblicza, pokazuje że program jest offline choć ciągle działa.


Potrzebuję aby program w C++ korzystał z czasu z internetu. Wymyśliłem kilka sposobów jak to uczynić.
1. Pobrać datę z internetu za pomocą curl i ustawić tę datę w systemie. [Ten sposób w ostateczności]
2. Pomyślałem żeby obliczać różnicę między czasami z komputera a Internetu. Jednak miesiące mają różne liczby dni, lata przestępne itp. [Musiałbym napisać dość obszerną funkcję]

Jest jakiś inny sposób??? Mianowicie szybszy i krótszy.
Np pobieram datę z Internetu i zapisuje ją do jakiejś funkcji, która zastępuje czas z komputera.
P-73936
m4tx
» 2013-01-14 16:17:12
Jednak miesiące mają różne liczby dni, lata przestępne itp.
Sekundy przestępne... ;)

W ogóle to dość śmiesznie to próbujesz zrobić. Nie prościej np. pingować w określonych interwałach?
P-73937
Artekp999
Temat założony przez niniejszego użytkownika
» 2013-01-14 21:12:04
Mówiąc w skrócie
Chodzi mi o to żeby program uruchomiony jednocześnie na kilku komputerach korzystał z czasu z Internetu, aby czas na każdym był taki sam, gdyż czas systemowy będzie się różnił.

Obrazowo:
Komputer1     2013-01-14 19:23:32
Komputer2     2013-01-14 18:13:52
Komputer3     2012-01-12 15:55:31

Czas z internetu 2013-01-14 20:05:12

Wiem że najprościej było by zmienić datę systemową, ale to raczej nie wchodzi w grę.

Najlepiej by było gdybym raz pobrał datę z internetu, a później od tej daty program by dalej działał.

Mam pomysł jak to rozwiązać, ale ten sposób nie jest zbyt optymalny.
Np. Co kilka sekund pobierać czas z Internetu.
P-73964
jsc
» 2013-01-14 21:17:35
Nie utworzyć serwera czasu (jeśli koniecznie chcesz z internetu to proxy)?
P-73967
m4tx
» 2013-01-14 21:21:31
Ale... po co Ci to? Jak chcesz sprawdzić, czy program jest uruchomiony to generalnie wystarczy, jak będziesz pingował serwer.

Zamiast ustawiania czasu w systemie proponuję obliczyć różnicę między czasem lokalnym a tym z internetu. Dodatkowo - UNIX definiuje format przechowywania daty i godziny jako 64-bitową liczbę i tego formatu proponuję się trzymać przy wysyłaniu tej danej do serwera. Trzymając się UNIX-owego standardu łatwo policzysz różnicę i dodasz ją do godziny wysyłanej na serwer.
P-73969
« 1 »
  Strona 1 z 1