gpt4 book ai didi

c# - NamedPipeServerStream 和 WaitForConnection 方法

转载 作者:行者123 更新时间:2023-12-02 15:04:42 26 4
gpt4 key购买 nike

在使用NamedPipeServerStream类时,令我烦恼的是,对于每个传入连接,我需要创建新对象并调用它的方法WaitForConnection

我想要做的是创建一个 NamedPipeServerStream 对象,然后在 while 循环中重复调用上述方法,如下所示:

NamedPipeServerStream s2;
using (s2 = new NamedPipeServerStream("pipe_name", PipeDirection.InOut)) {
while(true) {
ss2.WaitForConnection();
//do something here
}
}

但是当我这样做时,我收到消息

Stream has been disconnected.

有什么建议吗?

最佳答案

如果您想使用 NamedPipeServerStream,您需要使用它提供的编程模型,这就像它是将底层 Windows 句柄包装到命名管道内核对象一样。您不能像您尝试的那样使用它,因为这不是命名管道句柄的工作方式。

如果您确实想在单个线程上一次处理一个连接,请将循环彻底翻转:

while (true)
{
using (NamedPipeServerStream ss2 = new NamedPipeServerStream("pipe_name", PipeDirection.InOut)
{
ss2.WaitForConnection();
// Stuff here
}
}

更有可能的是,您需要一个多线程管道服务器来并行处理连接。如果是这样,有多种方法 - 搜索其他 SO 问题将出现多种模式,例如 herehere .

关于c# - NamedPipeServerStream 和 WaitForConnection 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com