我正在测试一个使用COM-Port的应用程序。应用程序在Virtual PC中运行。我已将虚拟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
}
}尽管虚拟PC正在运行并且我正在尝试与COM端口通信,但程序仍在WaitForConnection()处等待。
我还尝试了以下方法,因为我不确定是否必须在程序中创建命名管道,或者命名管道是由Virtual PC创建的。
var p = new NamedPipeClientStream(@"pipe\mypipe");
p.Connect();我在这里做错了什么?
发布于 2011-02-05 20:42:07
当您将虚拟PC设置为使用命名管道作为COM端口时,它将充当服务器(如果它是客户端,则VPC必须持续轮询新服务器,例如您的服务器崩溃)。
您的第二种方法几乎是正确的,除了您应该使用"mypipe“作为管道的名称,而不是"pipe\mypipe”。
https://stackoverflow.com/questions/4906784
复制相似问题