Wie schreibe ich ein einfaches Minimum, das erforderlich ist, damit es funktioniert - Testanwendung, die die Verwendung von IPC / Named Pipes veranschaulicht?
Wie würde man beispielsweise eine Konsolenanwendung schreiben, in der Programm 1 "Hallo Welt" zu Programm 2 sagt und Programm 2 eine Nachricht empfängt und "Roger That" zu Programm 1 antwortet.
c#
ipc
named-pipes
Jordan Trainor
quelle
quelle
Thread.Sleep
Task.Factory.StartNew
mitTask.Run
.reader
/ entsorgenwriter
? Wenn ja, entsorgen Sie nur einen von ihnen? Ich habe noch nie ein Beispiel gesehen, bei dem beide an denselben Stream angehängt sind.Für jemanden, der IPC und Named Pipes noch nicht kennt, war das folgende NuGet-Paket eine große Hilfe.
GitHub: Named Pipe Wrapper für .NET 4.0
So verwenden Sie zuerst das Paket:
Dann ein Beispielserver (vom Link kopiert):
Beispielclient:
Das Beste für mich ist, dass es im Gegensatz zu der hier akzeptierten Antwort mehrere Clients unterstützt, die mit einem einzelnen Server kommunizieren.
quelle
Sie können tatsächlich mit dem Namen btw in eine Named Pipe schreiben.
Öffnen Sie eine Befehlsshell als Administrator, um den Standardfehler "Zugriff verweigert" zu umgehen:
quelle
FYI dotnet core unter Linux unterstützt keine Namedpipes. Versuchen Sie stattdessen tcplistener, wenn Sie unter Linux arbeiten
Dieser Code hat einen Client-Roundtrip pro Byte.
DotNet Core 2.0 Server ConsoleApp
DotNet Core 2.0 Client ConsoleApp
quelle
System Unauthorized Accesss Exception - path is denied