远程关闭后保持管道打开的最佳方法

Posted

技术标签:

【中文标题】远程关闭后保持管道打开的最佳方法【英文标题】:Best way to keep a pipe open after a remote close 【发布时间】:2009-11-06 18:15:08 【问题描述】:

使用this tutorial 我想出了下面的代码。我的客户经常运行。它通过点击激活,在某些情况下可能会同时启动两次。我担心一个客户端可能会在另一个客户端打开时关闭,这会导致管道在几毫秒内关闭。保持管道畅通的最佳方法是什么?

    static public void ThreadStartServer()
    
        while (true)
        
            using (NamedPipeServerStream pipeStream = new NamedPipeServerStream("mytestpipe"))
            
                Console.WriteLine("[Server] Pipe created 0", pipeStream.GetHashCode());

                pipeStream.WaitForConnection();
                Console.WriteLine("[Server] Pipe connection established");

                using (StreamReader sr = new StreamReader(pipeStream))
                
                    string temp;
                    while ((temp = sr.ReadLine()) != null)
                    
                        Console.WriteLine("0: 1", DateTime.Now, temp);
                    
                
            
        

【问题讨论】:

两个客户端如何连接到同一个管道?这能解决吗? 【参考方案1】:

使您的管道服务器具有多线程,其中一个线程专门用于监听。见theseanswers:

【讨论】:

以上是关于远程关闭后保持管道打开的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

最佳实践:每次传输后保持 TCP/IP 连接打开还是关闭?

推送后从远程删除已提交文件的最佳方法

远程主机终止后,Recv() 调用挂起

从 4 个远程服务器中提取大量数据的最佳技术是啥 [关闭]

保持远程桌面会话“活动”[关闭]

远程 gdb 的最佳 gui [关闭]