如果没有人连接到网络,如何在计算机不挂机的情况下使用命名管道?
Posted
技术标签:
【中文标题】如果没有人连接到网络,如何在计算机不挂机的情况下使用命名管道?【英文标题】:How to use Named Pipes without the computer hanging if no one connects to the network? 【发布时间】:2011-09-25 14:07:05 【问题描述】:我正在寻找一种在同一台计算机上的程序之间进行通信的方法,并被称为命名管道。
似乎连接服务器的唯一方法是通过 WaitForConnection (我不太了解使用非托管代码)。但是,如果没有人连接到网络,程序就会无限期挂起。如何使用超时限制建立连接?
谢谢。
【问题讨论】:
【参考方案1】:不要调用同步的 WaitForConnection 方法,而是为非阻塞服务器调用 BeginWaitForConnection/EndWaitForConnection。请参阅here 以获得类似的答案。
您想要的构造函数是具有 5 个参数的构造函数here。你可以这样称呼它:
NamedPipeServerStream pipeServer = new NamedPipeServerStream(
"<pipe-name>",
PipeDirection.InOut,
1,
PipeTransmissionMode.Byte,
PipeOptions.Asynchronous);
【讨论】:
不,这两个方法存在于 NamedPipeServerStream 类中。 谢谢。在我编辑了问题后,我看到这解决了问题(在您提供的链接中)。感谢您的详尽回答!以上是关于如果没有人连接到网络,如何在计算机不挂机的情况下使用命名管道?的主要内容,如果未能解决你的问题,请参考以下文章