파이프이름은 백슬래쉬를 제외한 모든 문자와 숫자 특수문자를 사용할 수 있다. 파이프이름은 256자를 초과할 수 있다. 파이프 이름은 대소문자를 구분하지 않는다.
매개 변수
dwOenMode
파이프의 접근방식과 권한을 설정한다.
Mode
설명
PIPE_ACCESS_DUPLEX
읽기&쓰기 모드로 서버와 클라이언트는 양방향으로 읽고 쓸 수 있다. 서버는 GENERIC_READ, GENERIC_WRITE 파일 접근권한과 동일한 효과를 가진다. 클라이언트는 CreateFile(:12) 함수로 파이프를 이용할 수 있는데, GENERIC_READ, GENERIC_WRITE 혹은 모두를 사용할 수 있다.
PIPE_ACCESS_INBOUD
서버는 클라이언트로 부터 읽을 수만 있다. 서버는 GENERIC_READ 효과를 가진다. 클라이언트는 GENERIC_WRITE로 쓰기로 파이프에 연결할 수 있다.
PIPE_ACCESS_OUTBOUND
서버는 클라이언트로 쓸수만 있다. 서버는 GENERIC_WRITE 효과를 가진다. 클라이언트는 GENERIC_READ로 읽기로 파이프에 연결할 수 있다.
dwPipeMode
파이프의 데이터 통신 방식을 설정한다.
PIPE_TYPE_BYTE
바이너리 전송 모드
PIPE_TYPE_MESSAGE
메시지 전송 모드
PIPE_READMODE_BYTE
바이너리 수신 모드
PIPE_READMODE_MESSAGE
메시지 수신 모드
PIPE_WAIT
봉쇄 모드
PIPE_NOWAIT
비봉쇄 모드
nMaxInstances
생성할 수 있는 최대 파이프 갯수 255까지 허용
nOutBufferSize
출력 버퍼 사이즈. 0이면 기본 값 사용
nInBufferSize
입력 버퍼 사이즈. 0이면 기본 값 사용
nDefaultTimeout
WaitNamePipe(:12)함수에 적용할 시간. 1/1000초 단위
lpSecurityAttributes
보안속성 구조체
설명
리눅스와 마찬가지로 파일처럼 다룰 수 있다. CreateFile(:4300)으로 파이프에 연결하고 ReadFile(:4300), WriteFile(:4300)로 데이터를 읽을 수 있다.
단지 지역 컴퓨터에 있는 프로세스(:12)사이의 통신이 가능한 리눅스(:12)의 네인드 파이프와 달리, 윈도는 LAN 혹은 인터넷(:12)에서의 통신도 지원한다. 지역 컴퓨터와 LAN 영역에서의 통신은 충분한 성능을 보여주지만 인터넷 영역으로 넘어갈 경우 TCP(:12) 소켓(:12) 통신에 비해 매우 느린 성능을 보여준다.
예제
네임드 파이프로 echo 서버 클라이언트를 구현해 보기로 했다. 서버 프로그램의 이름은 echo_server_np.c, 클라이언트 프로그램의 이름은 echo_client_np.c로 했다.
컴파일은 테스트되었음. 작동 테스트하지 않았음
예제 : echo_server_np.c
CreateNamedPipe
사용법
매개 변수
설명
예제
Recent Posts
Archive Posts
Tags