有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的。有没有一种快速简便的方法来获取所有命名管道的列表?

有帮助吗?

解决方案

您可以使用sysinternals中的 Process Explorer 查看这些内容。使用“查找 - >查找句柄或DLL ...“选项并输入模式“\ Device \ NamedPipe \”。它将显示哪些进程具有哪些管道打开。

其他提示

请尝试以下方法:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");

在Windows Powershell控制台中,键入

[System.IO.Directory]::GetFiles("\\.\\pipe\\")


如果您的操作系统版本大于Windows 7,您也可以键入

get-childitem \\.\pipe\

使用来自Sysinternals的 pipelist.exe

C#:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");

我偶然发现了Chrome中的一项功能,该功能会通过导航到“file://.//pipe//"

来列出所有打开的命名管道

由于我似乎无法找到任何参考,这对我非常有帮助,我想我可能会分享。

第二个管道在提交时由此网站解释...开头需要两个反斜杠。因此,请确保使用System.IO.Directory.GetFiles(@“\\。\ pipe \”)。

请注意,我已经看到此函数调用抛出了“路径中的非法字符”。当我的机器上的一个管道有无效字符时出现异常。 PipleList.exe工作正常,所以它似乎是MS的.net代码中的一个错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top