我在Windows(C ++)上使用命名管道。我能够将数据从一个不相关的进程发送到另一个进程。
但是为此,我必须先启动服务器。并在运行客户端之前使用“ CreateNamedPipe”。客户端使用“ CreateFile”连接到服务器。
有什么办法可以在启动服务器之前先运行客户端? (不尝试在循环内使用“ CreateFile”,直到成功为止)
谢谢。
最佳答案
IMO,这取决于您的用例。我的答案将基于您的软件不需要命名管道即可运行的情况。例如,假设有一个使用命名管道记录活动的软件。这样,我们可以了解您的软件无需登录即可完美运行。
如果启动程序而无需存在指定的pip,则应该是可能的。然后,一旦所有内容加载完毕并正常运行,您可以让子例程定期检查命名管道的存在(假设每5秒钟执行一次,以免CPU过载),一旦创建,便开始使用它。
注意:它仍然看起来像是一个无限的“循环,直到成功”,但是我没有看到任何错误,因为您正确地执行了该操作,也就是说,您使用非阻塞机制来运行它。
注意:它不一定意味着多进程技术。您可以想象一个带有定期检查(不是每次迭代)的主循环。