2017-05-14 7 views

답변

0

물론이 가능하며 파이프를 연결 한 후 분리 할 때까지해야합니다. 109 이것은 ERROR_BROKEN_PIPE입니다. ReadFile에이 오류가 있습니다. 다른 쪽 끝이 파이프 핸들에 가까울 때는 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