如何在Windows中重复读取NamedPipe?

时间:2017-05-14 12:38:12

标签: winapi named-pipes

如何在Windows中重复读取NamedPipe?我得到一个109错误,说它无法打开管道,如果我有另一个ReadFile()函数之后的ReadFile()函数。

1 个答案:

答案 0 :(得分:0)

当然这是可能的,并且需要在管道连接后直到断开连接。 109这是ERROR_BROKEN_PIPE - 当{另一端是关闭管道句柄时,通过调用ReadFileCloseHandle中出现此错误。在这种情况下,您需要致电DisconnectNamedPipe,然后通过电话ConnectNamedPipe等待新客户。连接完成后 - 您只需要调用ReadFile,在读取完成时再次调用ReadFile,依此类推,直到断开连接 - 返回一些错误。如果ERROR_PIPE_NOT_CONNECTED中出现错误ReadFile(正好或完成),则表示远程结束通话DisconnectNamedPipe - 您的管道已断开连接,因此您可以跳过对DisconnectNamedPipe的呼叫,只需致电ConnectNamedPipe