触发从Windows管道读取

时间:2014-05-02 05:42:09

标签: c++ multithreading visual-c++ pipe named-pipes

这是一个非常基本的问题。尝试使用管道编写IPC机制。我使用了msdn中一个简单的客户端和服务器示例,它来回传递char消息。现在我的要求是服务器一直在监听来自客户端的命令。在从客户端接收指令时,服务器执行一些操作并返回到客户端。

该示例演示了如何阅读这些内容。但是当我的管道进入某个东西时,我需要触发或发出信号,以便我可以执行读取操作并退出。专用于保持读取的单个线程看起来效率低下。如果我有10个客户端,每个客户端10个线程和10个读取线程不好。

所以,有没有一种机制,我可以从管道获取通知,我必须阅读?

1 个答案:

答案 0 :(得分:0)

您可以在管道上使用IOCP。 ReadFile,WriteFile,TransactNamedPipe和ConnectNamedPipe API可以与管道句柄一起使用。

ReadFileEx和WriteFileEx也可用于完成例程,(不要接近hEvent同步设计),用于管道I / O.

有关详细信息,请参阅MSDN。