我正在测试使用COM-Port的应用程序。该应用程序在Virtual PC中运行。我已经设置了Virtual PC设置,以便为COM1-Port使用命名管道\。\ pipe \ mypipe。
现在我正在尝试使用C#与此命名管道进行通信。
using (var pipe = new NamedPipeServerStream(@"\\.\pipe\mypipe"))
{
pipe.WaitForConnection();
using (var reader = new StreamReader(pipe))
{
// Do some communication here
}
}
程序在WaitForConnection()等待,尽管Virtual PC正在运行,我正在尝试与COM-Port通信。
我也尝试过以下操作,因为我不确定是否必须在程序中创建命名管道,或者命名管道是由Virtual PC创建的。
var p = new NamedPipeClientStream(@"pipe\mypipe");
p.Connect();
我在这里做错了什么?
答案 0 :(得分:2)
当您将Virtual PC设置为使用命名管道作为COM端口时,它将充当服务器(如果它是客户端,那么VPC将不得不连续轮询新服务器,例如,如果您的服务器崩溃)。 / p>
你的第二种方法几乎就是标记,除了你应该使用“mypipe”作为管道名称而不是“pipe \ mypipe”。