이 내용은 2004/04/23 기준으로 쓰여졌습니다. 최신 내용은 본가에서 얻으실 수 있습니다.
차례
개요
SSTP 프로토콜 통신을 소켓이 아닌 윈도우 메세지로 하는 어프로치가 Direct SSTP 입니다. Direct SSTP 에는 보다 단순하고 빠른 통신을 할 수 있다고 하는 비용적인 이점과, 로컬 머신상에서 복수의 서버를 공존 시키는 것이 용이(=고스트끼리가 회화하기 쉽다)하다는 큰 이점이 있습니다.
Direct SSTP 는 단순한 통신 수단이고, 프로토콜과는 관계 없습니다. SSTP 프로토콜 자체의 사양에 대해서는 SSTP 프로토콜 문서(SpecSstp)를 참조해 주세요.
사양
WM_COPYDATA 로 데이터를 건네받습니다. 다음과 같은 프로토콜로 Direct SSTP 서버에 리퀘스트를 해 주세요. Direct SSTP 서버는 리퀘스트에 따른 처리를 한 후 HWnd 헤더로 지정된 윈도우 핸들에 대해 같은 포맷으로 반응을 돌려줍니다.
WM_COPYDATA 로 보내지는 COPYDATASTRUCT 의 형식 (윈도우 API 레퍼런스 참조)
dwData = 9801
cbData = 리퀘스트 헤더의 길이
lpData = 리퀘스트 헤더 캐릭터 라인을 가리키는 포인터
리퀘스트 헤더
SEND SSTP/1.4 Sender: 카드캡터 Script: \h\s0아-아-아-. \e HWnd: 1024 Charset: Shift_JIS
리퀘스트 헤더의 사양은 SSTP 와 완전히 같습니다만, 리퀘스트의 종류에 관련되지 않고 HWnd 헤더가 필수이므로 주의해 주세요. Direct SSTP 통신에서 HWnd 가 없는 리퀘스트는 모두 Bad Request 로 간주됩니다.
윈도우 핸들을 얻는 방법
filemapping object "Sakura" 로부터 데이터를 얻는 것으로 확실하게 윈도우 핸들을 얻을 수 있습니다. 메모리 오브젝트 문서(SpecMemoryObject)를 참조해 주세요.
