C++ Windows上的命名管道

C++ Windows上的命名管道,c++,c,windows,named-pipes,C++,C,Windows,Named Pipes,我在windows(C++)上使用命名管道。我能够将数据从一个不相关的进程发送到另一个进程。 但是为了这个,我必须首先启动服务器。并在运行客户端之前使用“CreateNamedPipe”。客户端使用“CreateFile”连接到服务器 有没有办法在启动服务器之前先运行客户端?(在循环中不尝试使用“CreateFile”,直到成功为止) 谢谢。在我看来,这取决于您的用例。我的答案将基于您的软件不需要命名管道才能工作的情况。例如,假设一个软件使用命名管道记录活动。通过这种方式,我们可以理解您的软件可

我在windows(C++)上使用命名管道。我能够将数据从一个不相关的进程发送到另一个进程。 但是为了这个,我必须首先启动服务器。并在运行客户端之前使用“CreateNamedPipe”。客户端使用“CreateFile”连接到服务器

有没有办法在启动服务器之前先运行客户端?(在循环中不尝试使用“CreateFile”,直到成功为止)


谢谢。

在我看来,这取决于您的用例。我的答案将基于您的软件不需要命名管道才能工作的情况。例如,假设一个软件使用命名管道记录活动。通过这种方式,我们可以理解您的软件可以在没有日志记录的情况下完美工作

如果您启动程序时不需要指定的pip存在,那么这应该是可能的。然后,一旦所有内容都加载并正常工作,您就可以让子程序定期检查命名管道的存在性(假设每5秒检查一次,以避免CPU过载),一旦创建,您就开始使用它

注意:它看起来仍然像一个无限的“a循环,直到成功”,但我不认为这有什么错,因为你做得很好,比如说,你用非阻塞机制运行它


注意:它不一定意味着多进程技术。您可以想象一个带有周期性检查(不是每次迭代)的单个主循环。

不,当然不是。在您创建命名管道之前,没有命名管道。不过,您不必使用循环。只需创建一个命名事件,并让服务器在管道准备就绪后发出事件信号。