Named Pipe zwischen c#-Applikation und C++-Applikation
-
Hallo!
Erst einmal möchte ich beschreiben was ich umsetzen möchte. Unter Windows 7 möchte ich eine c#-Applikation und eine c++-Applikation betreiben. Die beiden Applikationen sollen miteinander kommunizieren können. Die c#-Applikation hat die Möglichkeit Daten als Textnachricht an die c++ Applikation zu versenden. Die c#-Applikation soll als Server dienen (Sender) die c++ Applikation als Client.
Das habe ich schon erfolgreich umsetzen können.Eine C++ Konsolenanwendung startet als Server und warten auf eine Client-Verbindung. Wenn ich die Client ++ Applikation starte, dann wird die Nachricht auch korrekt gesendet. Die Kommunikation klappt!
Wenn ich aber jetzt eine c#-Sharp Applikation als Server erstelle, dann funktioniert das ganze nicht!
Der c++ Client ist so realisiert worden:
Im Konstruktor erzeuge ich mit der Funktion CreateFile() eine Pipe. Dann rufe ich im Hauptprogramm per Schleife die Funktion ReadFile() auf.
**Kann ich denn mit irgend welchen C#-Sharp Klassen eine Verbindung aufbauen über die Pipe?
Oder muss ich eine c++-dll einbinden, damit eine Kommunikation stattfinden kann.
**^Ich möchte gern so etwas umgesetzt haben:^
Ich starte die c#-Applikation und anschließend die c++ Applikation. Jetzt kann ich einfach mit Hilfe von Buttons Nachrichen an die c++ Applikation senden.
Problem ist auch: Es gibt ja auch so etwas wie ein Blockieren von Funktionen. Ich hatte mir gedacht, dass ich externe Prozesse für beide Applikationen starte, und die Prozesse solllen untereinander kommunizieren können (Über die Pipe)
Kann mir Jemand einen Tipp geben, wo z.B. eine Beschreibung zu finden ist über so eine Umsetzung!
Über Hilfe wäre ich sehr dankbar!
-
Dein Beitrag erscheint mir irgendwie etwas widersprüchlich zu sein. Oben sagst du, dass du es geschafft hättest, eine C# Applikation mit einer C++ Applikation kommunizieren zu lassen und unten meinst du dann, dass du Hilfe dazu möchtest, wie man dies macht, so als hättest du es bisher nicht geschafft.
Daher rate ich jetzt einfach mal. Suchst du die Klassen aus dem
System.IO.Pipes
Namensraum?Grüssli
-
Bevor Du irgend etwas schreibst, was ich eh schon wusste, lese doch bitte die Frage erste mal richtig durch!
Wenn ich Klassen aus der C++ Bibliothek nutze, also beide Applikationen in C++ erstellt wurden, dann klappt es!
Eine C++ Konsolenanwendung startet als Server und warten auf eine Client-Verbindung. Wenn ich die Client ++ Applikation starte, dann wird die Nachricht auch korrekt gesendet. Die Kommunikation klappt!
Dein Beitrag erscheint mir irgendwie etwas widersprüchlich zu sein.?????
Grüße
-
Du willst einen C# Server, der über Pipes kommunizieren kann. Dravere hat dir dafür den Namespace System.IO.Pipes geboten. Kennst du diesen Namespace und die darin enthaltenen Klassen? Hast du sie benutzt oder sind sie bereits im Einsatz? Wenn ja, dann zeig mal deinen Code, wenn nicht, dann les' dich da mal ein.
-
HelloWorld() schrieb:
Bevor Du irgend etwas schreibst, was ich eh schon wusste, lese doch bitte die Frage erste mal richtig durch!
Ich habe deinen Beitrag ca. viermal durchgelesen und nicht verstanden, was du eigentlich willst. PuppetMaster2k scheint auch Mühe zu haben. Dass du da zudem noch fett hervorgehobene Sätze und dazu noch verkleinerte Sätze in deinem Beitrag hast, hilft dem Verständnis überhaupt nicht. Ich habe mich aber an den einzigen Satz gehalten, welcher ein Fragezeichen hat. Und dazu habe ich dir eine Antwort gegeben. Im Namensraum
System.IO.Pipes
findest du C# Klassen für die Kommunikation über Pipes.Ich kann dir nur empfehlen, dich besser auszudrücken und die Frage sauber zu stellen. Mich fast schon anzuschnauzen, weil ich deinen Beitrag nicht entziffern kann, hilft dir da gar nichts.
Grüssli