Sha*_*les 7 c# asp.net-3.5 named-pipes
我目前正在使用ASP.NET 3.5和C#学习Windows中的命名管道.我写了一个小型服务器程序,它创建了一个命名管道:
using (NamedPipeServerStream pipeStream = new NamedPipeServerStream(pipeName))
{
pipeStream.WaitForConnection();
// do sth.
}
Run Code Online (Sandbox Code Playgroud)
和一个打开管道的客户端应用程序如下:
using (NamedPipeClientStream pipeStream = new NamedPipeClientStream(pipeName))
{
pipeStream.Connect();
// do sth.
}
Run Code Online (Sandbox Code Playgroud)
只要只有一个客户端连接到管道,这就很有效.它既可以读写,也可以写入.如果我尝试连接第二个客户端,代码永远不会超过该行
pipeStream.Connect();
Run Code Online (Sandbox Code Playgroud)
服务器和所有客户端都在同一台计算机上运行.有任何想法吗?
非常感谢你提前!
感谢您的快速帮助。
我已经在单独的线程中处理了实际的处理,但忘记提及这一点。但一位同事发现了这个问题:
我有一个 StreamReader,它被服务器端发布的 NamedPipeServerStream-using 块中的另一个 using 块包围。
当该块完成关闭 StreamReader 时,它还由于某种原因断开了 NamedPipeServerStream 的连接。另外,我没有将 pipelineStream.WaitForConnection() 包含在循环中。
| 归档时间: |
|
| 查看次数: |
7755 次 |
| 最近记录: |