Hallo, ich habe ein Programm, das ständig läuft, um alle paar Sekunden ein Polling zu starten, um einen Zustand zu prüfen. Während der Laufzeit ändern sich aber einige Parameter und ich möchte gerne von einem anderen Programm aus, dass die Parameter auswertet, neue Paramter übergeben und gegebenfalls eine Antwort zurückerhalten. Dafür reichen dann z.B. Strings oder so, die dann zwischen den beiden Programmen ausgetauscht werden. Wie kann ich das realisieren? Danke im Voraus.
Welches System verwendest du? Linux oder Windows? Unter Windows würde ich Windows-Nachrichten verwenden, die du von dem einem zu dem anderen Programm schicken kannst, wenn du die Fenster-Handles kennst. Die kannst du über den Fensternamen herausfinden.
Arbeite unter Windows und Visual c++. Gibts da vielleicht ein kleines Tutorial, oder ein Stichwort, wo nach man googlen könnte?
Du suchst Methoden zur Interprozesskommunikation. Unter Windows gibt es dafür verschiedene Möglichkeiten; Windows-Messages (diese setzen voraus, daß die Anwendungen auch diese Windows-Messages verarbeiten, was bei Konsolapplikationen nicht der Fall ist), Named Pipes, Sockets oder Shared Memory. Named Pipes und Sockets haben den Vorteil, daß die beiden Prozesse auch auf unterschiedlichen Maschinen laufen können. Shared Memory benötigt noch zusätzlicher Synchronisationsmechanismen wie Mutexe. Windows-Messages sind gut geeignet, um einfache numerische Werte (zwei 32-Bit-Werte) zu übertragen, wenn mehr Daten transportiert werden sollen, müssen diese in von beiden Prozessen einsehbaren Speicher verpackt, und dann ein Handle auf diesen Speicher transportiert werden. Der Mechanismus entspricht dem von der Zwischenablage her bekannten.
Mit Sockets kannst Du noch cool arbeiten. Wie bereits geschrieben wurde, können dann die Programme auch übers Netzwerk auf verschiedenen Rechnern laufen und man ist sogar Plattformunabhängig, sprich ein Teil kann für Windows programmiert werden und ein anderer für ein Unix Derivat wie z.B. FreeBSD. Man muss sich nur ein kleines Protokoll ausdenken, damit sich die beiden Teile verstehen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.