有没有一种简单的方法来测试您的命名管道是否正常工作?我想确保我从我的应用程序发送的数据实际上是发送的.是否有一种快速简便的方法来获取所有命名管道的列表?
您可以使用sysinternals中的Process Explorer查看这些内容.使用"查找 - >查找句柄或DLL ..."选项并输入模式"\ Device\NamedPipe \".它将显示哪些进程具有哪些管道打开.
在Windows Powershell控制台中,键入
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
get-childitem \\.\pipe\
请尝试以下方法:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
使用Sysinternals中的pipelist.exe.
C#:
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
我偶然发现Chrome中的一个功能,它将通过导航到"file://.//pipe//"列出所有打开的命名管道
因为我似乎无法找到任何参考,这对我非常有帮助,我想我可能会分享.
第二个管道在提交时由此网站解释...开头需要两个反斜杠.因此,请确保使用System.IO.Directory.GetFiles(@"\\.\ pipe \").
请注意,我已经看到此函数调用抛出"路径中的非法字符".当我的机器上的一个管道有无效字符时出现异常.PipleList.exe工作正常,所以它似乎是MS的.net代码中的一个错误.