WinFuture-Forum.de: C++ Zeit Aus Netzwerk Lesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C++ Zeit Aus Netzwerk Lesen


#1 Mitglied ist offline   Klemmi19 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 04. August 09
  • Reputation: 2

geschrieben 04. August 2009 - 07:20

Guten morgen!

ich hätte da eine frage an euch, ich hoffe ihr könnt mir weiter helfen.

ich suche eine möglichkeit mit einem gerät, dass keine eigene lokale systemzeit hat, die systemzeit eines anderes gerätes (zb Windows PC) über das netzwerk abzufragen und diese zeit dann in dem gerät ohne zeit weiter zu generieren und als zeit zu benutzen.

könnt ihr mir da weiter helfen?

danke schon im vorraus!

daklemmi
0

Anzeige



#2 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.526
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 04. August 2009 - 07:38

Naja, musst halt per TCP/IP ein Serverprorgramm für den Windows PC schreiben, dass auf Anfrage die Uhrzeit zurückgibt. Und für dieses Gerät halt ne Routine, die diese Anforderung stellt und die Antwort bekommt und interpretiert.
0

#3 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 04. August 2009 - 08:41

Oder du nutzt das vorhandene und ausgereifte Network Time Protocol (NTP). Das gibt es auch für Windows: http://www.meinberg....rman/sw/ntp.htm
Du musst nur prüfen, wie du den Abgleich auf deinem "zeitlosen" System durchführen kannst. Vielleicht gibt es dafür ja einen NTP-Client.
0

#4 Mitglied ist offline   Klemmi19 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 04. August 09
  • Reputation: 2

geschrieben 04. August 2009 - 14:49

ja leider habe ich die einschränkung, auf dem system, dass die zeit liefern soll nichts installieren zu können. also muss mein gerät direkt die zeit abrufen können ohne irgendwas auf dem gegensystem machen zu müssen.
wäre es doch nur so einfach wie unter windows die systemzeit eines anderen windowsrechners zu übernehmen. dort gibt man einfach nur ein: net time \\RECHNERderZEITliefert /set /yes und schon wird die zeit übernommen.

Dieser Beitrag wurde von Klemmi19 bearbeitet: 04. August 2009 - 14:49

0

#5 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 04. August 2009 - 15:06

Kannst du beide Systeme mal spezifizieren? - Denn so kann niemand konkrete Vorschläge machen.
Was ist dein Hostsystem, welches OS und ggf. zusätzliche Software läuft darauf? Was ist die Gegenseite für ein Gerät? Und was bzw. welches OS läuft auf dem Gerät?
0

#6 Mitglied ist offline   Klemmi19 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 04. August 09
  • Reputation: 2

geschrieben 04. August 2009 - 15:18

Das Hostsystem (System woher die Zeit kommen soll) ist üblicher weise ein stink normaler Windows PC mit meist Windows XP.
Die gegenseite, welches die Zeit holen soll, ist ein xEPI. Dort läuft kein OS drauf. Dieses wird über ein Web-Interface gesteuert. Von dort aus möcht ich versuchen, die zeit eines (meist) windowsrechners im netzwerk zu schnappen und als eigene zeit auf dem xEPI zu benutzen. dies möglichst ohne drittsoftware
0

#7 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.526
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 04. August 2009 - 18:55

Zitat

Oder du nutzt das vorhandene und ausgereifte Network Time Protocol (NTP). Das gibt es auch für Windows: http://www.meinberg....rman/sw/ntp.htm
Du musst nur prüfen, wie du den Abgleich auf deinem "zeitlosen" System durchführen kannst. Vielleicht gibt es dafür ja einen NTP-Client.

Wie kann es einen NTP-Client für ein System geben, dass keinen eigenen Zeitgeber hat!? Irgendwie widersinnig.

Zitat

ja leider habe ich die einschränkung, auf dem system, dass die zeit liefern soll nichts installieren zu können.

Darfst du eine EXE im Userkontext laufen lassen? Weil *installieren* muß man nichts.

Zitat

wäre es doch nur so einfach wie unter windows die systemzeit eines anderen windowsrechners zu übernehmen. dort gibt man einfach nur ein: net time \\RECHNERderZEITliefert /set /yes und schon wird die zeit übernommen

Das verwendet meines Wissens das nicht gerade triviale SMB-Protokoll und du brauchst Zugriffsrechte auf dem anderen System. Ganz sicher keine "mal eben geschwind"-Sache! Das ist RICHTIG komplex!

Zitat

Dort läuft kein OS drauf.

Klar läuft da eins drauf. Ob das dokumentiert ist, ist ne andere Sache :unsure:... Kann natürlich ein sogenanntes Echtzeit-OS sein, allerdings kenne ich kein Echtzeit-OS, dass einen Webserver mitliefert.
0

#8 Mitglied ist offline   Klemmi19 

  • Gruppe: Mitglieder
  • Beiträge: 18
  • Beigetreten: 04. August 09
  • Reputation: 2

geschrieben 05. August 2009 - 06:50

Beitrag anzeigenZitat (Lofote: 04.08.2009, 19:55)

Darfst du eine EXE im Userkontext laufen lassen? Weil *installieren* muß man nichts.


könntest du mir das ganze mit der einen EXE ohne installation weiter erklären?
0

#9 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.526
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 05. August 2009 - 08:09

Naja, als Code-Schnippsel wird das so irgendwie ausschauen:

CListenSocket socket;
socket.Create(6789); //Listen on port 6789
socket.Listen();



... und CListenSocket ist von CSocket abgeleitet und hat reagiert auf das OnAccept()-Ereignis ...

CListenSocket::OnAccept(int iCode)
{
CTime t=CTime::GetCurrentTime();
this.Send(&t.GetTime(),8,0);
}


Das ist ganz kurz und hack'n'dirty-mässig, wie in etwa das aussehen kann.

Das ganze gibt ne Standalone-EXE, die halt irgendwo im Netzwerk immer laufen sollte.

Dieser Beitrag wurde von Lofote bearbeitet: 05. August 2009 - 08:10

0

#10 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 05. August 2009 - 08:16

Beitrag anzeigenZitat (Lofote: 04.08.2009, 19:55)

Wie kann es einen NTP-Client für ein System geben, dass keinen eigenen Zeitgeber hat!? Irgendwie widersinnig.

Was ist daran widersinnig? Nur weil ein System keine (gepufferte) Echtzeituhr hat, kann ein System, das am Netzwerk hängt, doch zur Laufzeit die Zeit per (S)NTP beziehen.


Je nach Konfiguration und benötigter Genauigkeit könntest du für Windows einen einfachen "Zeitserver" schreiben, der bei Anfrage den aktuellen Timestamp oder Datum+Uhrzeit in einem beliebigen Format zurück gibt. Das ist zwar nicht unbedingt immer sehr genau, aber dafür relativ einfach.

Alternativ kannst du die Server/Client-Rollen auch tauschen, so dass man unter Windows einfach einen Client hat, der die aktuelle Zeit an das xEPI übermittelt.

Zur weiteren "Generierung" der Zeit im xEPI:
Ich weiß leider nicht, wie das xEPI genau aufgebaut ist. Aber wenn du ihn frei programmieren kannst, dann kannst du z.B. über Interrupt Requests dir eine Software Uhr aufbauen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0