我正在尝试学习如何使用命名管道。因此,我在LinqPad中创建了一个服务器和客户端。
以下是我的服务器代码:
var p = new NamedPipeServerStream("test3", PipeDirection.Out);
p.WaitForConnection();
Console.WriteLine("Connected!");
new StreamWriter(p).WriteLine("Hello!");
p.Flush();
p.WaitForPipeDrain();
p.Close();
这是我的客户端:
var p = new NamedPipeClientStream(".", "test3", PipeDirection.In);
p.Connect();
var s = new StreamReader(p).ReadLine();
Console.Write("Message: " + s);
p.Close();
我运行了服务器和客户端,服务器上显示"已连接!",说明连接成功。但是,客户端始终只显示
Message:
,后面没有任何内容,因此实际上并没有从服务器到客户端传输数据以便显示。我已经尝试交换管道方向,并让客户端发送数据到服务器,但结果相同。
在这个例子中,为什么数据没有被打印到屏幕上?我漏掉了什么吗?
谢谢!