Ich habe einige Client-Code, der mit einem Server mit Streams kommuniziert, die ich testen möchte. Ich möchte testen, ob der Client die richtigen Befehle an den Server sendet.
Zu diesem Zweck habe ich eine Connect-Methode erstellt, die zwei Streams akzeptiert: einen, aus dem der Client liest, und einen, in den der Client schreibt. Ich kann dann beide mit einem MemoryStream versorgen und die Befehle lesen, die von dem MemoryStream gesendet werden, in den der Client schreibt.
Mein Problem ist, dass ich eine Methode kodieren muss, die erfordert, dass diese beiden Ströme gleich sind. Ich habe auch festgestellt, dass ich nur dann zwei verschiedene Streams verwenden muss, wenn ich den Client testen möchte. Daher möchte ich die Connect-Methode so umgestalten, dass sie nur einen Stream verwendet, in den geschrieben und aus dem gelesen wird.
Ich kann keinen MemoryStream an diese Methode übergeben, da die Write-Methode in ein internes Byte-Array schreibt, aus dem die Read-Methode ebenfalls liest. Wenn ich dies einem Client übergebe, kann er die Befehle lesen, die er gerade gesendet hat!
Daher möchte ich fragen, welche Stream-Einrichtung dies leisten kann? Ich möchte einfach einen Stream, der von einer Quelle liest, aber in eine andere schreibt. Ich bräuchte Zugriff auf beide Quellen, damit der "Server", der mein Test ist, die richtigen Antworten auf Befehle senden und die vom Client gesendeten Befehle lesen kann.
Im Wesentlichen benötige ich zwei Ströme: S1 und S2. Ein Stream wird an den Client, der andere an den Server gegeben.
Die Lesemethode von S1 ist mit der Schreibmethode von S2 "verbunden" => S1 liest, was S2 schreibt.
Die Schreibmethode von S1 ist mit der Lesemethode von S2 "verbunden" => S2 liest, was S1 schreibt.
Dies ist der Normalfall, wenn ein Client mit einem Server kommuniziert. Hier möchte ich es nur im Speicher tun. Wie kann ich das codieren?