如何在Windows中重复读取NamedPipe?我得到一个109错误,说它无法打开管道,如果我有另一个ReadFile()函数之后的ReadFile()函数。
答案 0 :(得分:0)
当然这是可能的,并且需要在管道连接后直到断开连接。 109这是ERROR_BROKEN_PIPE
- 当{另一端是关闭管道句柄时,通过调用ReadFile
,CloseHandle
中出现此错误。在这种情况下,您需要致电DisconnectNamedPipe
,然后通过电话ConnectNamedPipe
等待新客户。连接完成后 - 您只需要调用ReadFile
,在读取完成时再次调用ReadFile
,依此类推,直到断开连接 - 返回一些错误。如果ERROR_PIPE_NOT_CONNECTED
中出现错误ReadFile
(正好或完成),则表示远程结束通话DisconnectNamedPipe
- 您的管道已断开连接,因此您可以跳过对DisconnectNamedPipe
的呼叫,只需致电ConnectNamedPipe
。