본문 바로가기
Programming/Win_API

IPC - 메일 슬롯

by bbolmin 2012. 12. 26.

프로세스는 각각 독립적으로 Stack, Heap, Data 등의 영역을 가지는데 해당 영역에 다른 프로세스에서 직접적으로 접근할 수 없다. 이런 상황에서 프로세스간의 통신을 하는 방법이 IPC(Inter Process Communication)이다.

 

 

메일 슬롯

 

- 단방향 통신 -> 메일 슬롯 2개를 만들어서 양방향 통신.

 

[메일 슬롯 이름 형식]

\\computername\mailslot\[path]name

 

ex) "\\\\.\\mailslot\\mymail"

 

 

 

Receiver : CreateMailslot(), ReadFile() 사용

Sender : CreateFile(), WriteFile() 사용

 

 

HANDLE CreateMailslot(

LPCTSTR lpName,

DWORD nMaxMessageSize,

DWORD lReadTimeout

LPSECURITY_ATTRIBUTES lpSecurityAttributes

);

 

- lpName : 생성할 메일슬롯의 이름

- nMaxMessageSize : 메일슬롯의 버퍼 크기(0인 경우 허용가능 최대치로 지정)

- lReadTimeout : ReadFile에 대한 블로킹할 시간. (0인 경우 블로킹 상태 없음)

- lpSecurityAttributes : 핸들을 상속하기 위한 용도