如果没有人连接到网络,如何在计算机不挂机的情况下使用命名管道?

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 类中。 谢谢。在我编辑了问题后,我看到这解决了问题(在您提供的链接中)。感谢您的详尽回答!

以上是关于如果没有人连接到网络,如何在计算机不挂机的情况下使用命名管道?的主要内容,如果未能解决你的问题,请参考以下文章

SSH常用命令选项

ssh 命令

SSH 常用命令解析

如何打开8080端口

电脑提示windows无法连接到网络怎么办?

如何在不先将设备连接到计算机的情况下通过 Wifi 执行“adb logcat”? [复制]