Windows命名管道连接

时间:2018-12-31 09:24:44

标签: windows named-pipes

我在搜寻此答案的上下两边。在关闭应用程序之前,是否可以对客户端建立的连接保持持久的命名管道服务器进行编码?这将是在C / C ++中。我没有能力要求任何人实际这样做。为了更详细地说明我的问题是否不清楚,我希望能够使客户端连接到服务器,然后能够来回传递数据,而不必在每次数据事务结束时终止连接然后再为下一个重新开始。可以看出,在我所看到或阅读的每个示例中,事务仅持续进行了一次数据交换。这似乎很浪费,而且非常耗时。然后,我想对其进行线程化,以便在同一个命名管道上最多可以有8个客户端。如果您知道执行此操作的示例代码,那也很好。已经阅读了Microsoft的示例,它们似乎是每次都与新连接进行一次数据交换。

我的困惑在于readfile()和writefile()函数。他们需要管道句柄和指向数据结构的指针,就像硬盘驱动器上的文件R / W一样。这些文件可以在程序启动时打开,使用,然后在退出应用程序之前最终关闭。这样做有风险,但有时是必要的。因此,我希望服务器应用程序不受客户端的控制。

先谢谢了。如果您不清楚,我将回答任何问题。

1 个答案:

答案 0 :(得分:0)

您的回答我并不感到惊讶。我确实想要一种使每个实例保持打开状态的方法,但是由于这不是管道的工作方式,因此可以理解。我设计了一种更好的方法来使我的应用程序相互通信。我最初有一个服务器和许多客户端,所以我转过身来,现在有一个客户端和许多服务器,每个服务器都有不同的管道名称。由于我的客户端(即服务器)完成了消息的大部分初始化工作,因此我现在可以更好地管理它们通过消息/管道发送和请求数据的方式。唯一的缺点不是一次将数据提供给所有人,而是几毫秒的时间。在花大量时间编写代码之前,请让我知道这是否无法正常工作。谢谢。欢迎任何建议。