2017-05-14 6 views

答えて

0

もちろんこれが可能であり、の後にパイプが接続され、切断されるまで。 109これはERROR_BROKEN_PIPEです - ReadFileにこのエラーがあります。もう1つの端がパイプハンドルの近くにある場合はCloseHandleです。この場合はDisconnectNamedPipeに電話をしてから、ConnectNamedPipeで新しいクライアントを待つ必要があります。接続が完了した後、ReadFileに電話するだけで、読み取り完了時にもう一度ReadFileと呼ぶ必要があります。切断するまで何らかのエラーが返されます。 ReadFileにエラーERROR_PIPE_NOT_CONNECTEDが入っていれば、これはリモートエンドコールDisconnectNamedPipe - あなたのパイプがすでに切断されているので、DisconnectNamedPipeへの呼び出しをスキップしてConnectNamedPipeに電話することができます。

+0

問題は、クライアントが接続でき、サーバーが最初のReadFileのパイプから正しく読み取れないことです。しかしその後、クライアントがパイプに別のものを書き込むと、サーバーはそれを読み取ることができず、そのエラーが発生します。 – Ana

+0

@Ana - これはコード(クライアントまたはサーバー)に何らかのエラーがあることを意味します。しかし、あなたは 'ERROR_BROKEN_PIPE'を持っているのは、リモートパイプが自分のハンドルを閉じているときだけです(コールなし* DisconnectNamedPipe *) – RbMm

+0

ありがとう、今私は理解しています! – Ana

関連する問題