Informationen zwischen zwei lokalen Programmen austauschen

  • C#

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Informationen zwischen zwei lokalen Programmen austauschen

    Hallo zusammen,

    ich habe gerade folgendes Problem: Ich erarbeite ein modulares System, welches aus mehreren Anwendungen auf einem PC besteht, die sich jedoch austauschen müssen. Wie bekomme ich es hin, dass das Hauptmodul sich mit den anderen Anwendungen unterhalten kann. Ich habe mir schon ein paar Gedanken gemacht:
    • Registry scheidet aus, weil Datenmengen zu groß.
    • Dateien schreiben geht nicht, weil dabei immer was schief geht (mal Lese-Schreib-Rechte, mal einfach zu lahm, usw.)

    Meines Wissens nach bleibt da nur eine lokale TCP-Verbindung, wo aber gern mal ein Virenschutz/Firewall rummault. Für mich selbst kein Problem, aber für die Anwender dann halt schon. Außerdem hab ich 0,000 Ahnung, wie man dann so etwas Klug umsetzen könnte. Ich muss halt Objekte von einer EXE zur anderen EXE bringen. Gerne auch als JSON oder XML. Aber es muss zügig gehen und alles komplett auf nur einem PC.

    Deswegen jetzt die große Frage: Gibt es eine Alternative zu einer lokalen TCP-Verbindung, und wenn nicht, wie setze ich das TCP so ein, dass es am wenigsten Probleme gibt. Verwendet wird neuestes C#, da können wir uns also austoben. Das Thema hatten wir hier schon mal, aber da ist man auch nicht zu einer zufriedenstellenden Lösung gekommen.

    Danke schon im Voraus
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    Im System.IO.Pipes Namespace solltest du Klassen rund um NamedPipes finden. NamedPipes wurden gerade für die Interprozesskommunikation geschaffen.
    SIMDoku (Simple Dokumentenverwaltung)
    Mein Lernprojekt um die verschiedensten Facetten der .NET Entwicklung zu erkunden.
    GitHub

    VB Paradise Dark Theme
    Inoffizieller VB-Paradise Discord.
    Bisher noch nicht. Da ich zum Teil auch ein paar MB verschieben muss, habe ich das bisher in die gleiche Ecke gestellt wie die Registry. Oder kennst du da eine DB-System, dass mit solchen Mengen zurechtkommt?

    Edit: Die Pipes schaue ich mir mal an.
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    Was genau wird denn da „verschoben“? Und was sind „ein paar MB“?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Mal Text, mal Bilder, mal Dateien. Sehr unterschiedlich. Wie gesagt, es ist für ein modulares System, welches außerdem erweiterbar sein sollte, also nicht beschränkt sein sollte. Und alles muss halt übers Hauptprogramm laufen. Der schaut da nochmal drauf und gibt das dann (verschlüsselt) an den Server (im Internet) weiter. Die Server-Hauptmodul-Kommunikation läuft. Nur halt die Hauptmodul-Module-Kommunikation bereitet mir Kopfschmerzen.

    Grüße
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    Ok dann versuch mal dein Glück mit den NamedPipes. Hier kenne ich mich leider gar nicht aus.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen