Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

named pipe

윈도 역시 named:::pipe(:12)를 지원한다. 기본 적인 성격은 리눅스(:12)의 네임드 파이프와 비슷하지만 좀더 확장해서 사용할 수 있다. 다음은 윈도 네임드 파이프의 특징이다.
  1. 이름을 가진다.
  2. 이름을 가지므로 어디에서든 (이름으로)접근할 수 있다.
  3. 원격의 프로세스와 통신이 가능하다는 점이 리눅스와 다른 특징이다. 이를 위해서 "Universal Name Convention"형식으로 파이프 이름을 생성한다. (형식 : \pc이름\pipe\파이프이름)
  4. 리눅스는 네임드 파이프와 파일 기술자가 1:1의 관계를 가진다. 그러므로 여러 개의 클라이언트를 처리하려면, 클라이언트 갯수만큼 파일을 생성해야 한다. 윈도의 네임드 파이프는 인스턴스를 반환한다. 파일을 새로 만들 필요 없이, 인스턴스를 만드는 것으로 여러 개의 클라이언트를 처리할 수 있다.
  5. 윈도는 Unix Domain Socket (AF_UNIX)를 지원하지 않는다. 대신 네임드 파이프를 Unix Domain Socket처럼 사용할 수 있다.
로컬이나 LAN(:12)상이라면 소켓(:12)과 성능 차이가 나지 않으나, 인터넷(:12)을 통과하면 상당히 느리다. LAN및 로컬에서 IPC(:12)용도로 사용할 경우 소켓 통신 보다 파이프를 이용하는 것을 고려해볼 만 하다.

관련 함수

  1. CreateNamedPipe(:4200) : 예제 포함
  2. ConnectNamedPipe
  3. ReadFile(:4200)
  4. DisconnectNamePipe
  5. WriteFile(:4200)