C++ Zeit Aus Netzwerk Lesen
#1
geschrieben 04. August 2009 - 07:20
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
Anzeige
#2
geschrieben 04. August 2009 - 07:38
#3
geschrieben 04. August 2009 - 08:41
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.
#4
geschrieben 04. August 2009 - 14:49
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
#5
geschrieben 04. August 2009 - 15:06
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?
#6
geschrieben 04. August 2009 - 15:18
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
#7
geschrieben 04. August 2009 - 18:55
Zitat
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
Darfst du eine EXE im Userkontext laufen lassen? Weil *installieren* muß man nichts.
Zitat
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
Klar läuft da eins drauf. Ob das dokumentiert ist, ist ne andere Sache
#8
geschrieben 05. August 2009 - 06:50
#9
geschrieben 05. August 2009 - 08:09
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
#10
geschrieben 05. August 2009 - 08:16
Zitat (Lofote: 04.08.2009, 19:55)
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.

Hilfe
Neues Thema
Antworten
Nach oben

