ConnectNamedPipe 함수(namedpipeapi.h)
명명된 파이프 서버 프로세스가 클라이언트 프로세스가 명명된 파이프의 인스턴스에 연결되기를 기다릴 수 있도록 합니다. 클라이언트 프로세스는 CreateFile 또는 CallNamedPipe 함수를 호출하여 연결합니다.
통사론
BOOL ConnectNamedPipe(
[in] HANDLE hNamedPipe,
[in, out, optional] LPOVERLAPPED lpOverlapped
);
매개 변수
[in] hNamedPipe
명명된 파이프 인스턴스의 서버 끝에 대한 핸들입니다. 이 핸들은 CreateNamedPipe 함수에서 반환됩니다.
[in, out, optional] lpOverlapped
OVERLAPPED 구조체에 대한 포인터입니다.
FILE_FLAG_OVERLAPPED
hNamedPipe FILE_FLAG_OVERLAPPED 함께 열지 않은 경우 클라이언트가 연결되거나 오류가 발생할 때까지 함수가 반환되지 않습니다. 동기 작업이 성공하면 함수가 호출된 후 클라이언트가 연결하는 경우 함수가 0이 아닌 값을 반환합니다.
반환 값
작업이 동기적이면 ConnectNamedPipe 작업이 완료될 때까지 반환되지 않습니다. 함수가 성공하면 반환 값은 0이 아닌 값입니다. 함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.
작업이 비동기인 경우 ConnectNamedPipe
함수가 호출되기 전에 클라이언트가 연결되면 함수는 0을 반환하고 GetLastError ERROR_PIPE_CONNECTED 반환합니다. 이 문제는 클라이언트가 CreateNamedPipe 호출과 ConnectNamedPipe호출 사이의 간격으로 연결하는 경우에 발생할 수 있습니다. 이 경우 함수가 0을 반환하더라도 클라이언트와 서버 간에 좋은 연결이 있습니다.
발언
명명된 파이프 서버 프로세스는 새로 만든 파이프 인스턴스에서 ConnectNamedPipe 사용할 수 있습니다. 이전에 다른 클라이언트 프로세스에 연결된 인스턴스와 함께 사용할 수도 있습니다. 이 경우 서버 프로세스는 먼저 DisconnectNamedPipe 함수를 호출하여 핸들을 새 클라이언트에 다시 연결하기 전에 이전 클라이언트에서 핸들 연결을 끊어야 합니다. 그렇지 않으면 ConnectNamedPipe 0을 반환하고 GetLastError 이전 클라이언트가 핸들을 닫은 경우 ERROR_NO_DATA 반환하거나 핸들을 닫지 않은 경우 ERROR_PIPE_CONNECTED 반환합니다.
ConnectNamedPipe 동작은 파이프 핸들의 대기 모드가 차단 또는 차단 해제로 설정되어 있는지 여부와 함수가 동기적으로 실행되도록 설정되었는지 또는 겹치는 모드로 설정되었는지 여부에 따라 달라집니다. 서버는 처음에 CreateNamedPipe 함수에서 파이프 핸들의 대기 모드를 지정하고 SetNamedPipeHandleState 함수를 사용하여 변경할 수 있습니다.
서버 프로세스는 또는
지정된 파이프 핸들이 차단 해제 모드인 경우 connectNamedPipe
예제
예를 들어 다중 스레드 파이프 서버
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | namedpipeapi.h |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
CallNamedPipe
CreateEvent
CreateFile
CreateNamedPipe
DisconnectNamedPipe
겹치는
파이프 함수
SetNamedPipeHandleState