DirectPlay DirectPlay Voice 음성 호스트의 처리   [목차열람] [주소복사] [슬롯비우기]
음성 호스트의 처리
 
Microsoft DirectX 9.0

음성 호스트의 처리


피어 투 피어의 Microsoft® DirectPlay® 네트워크 세션에서는, 네트워크 세션내의 1 개의 클라이언트가 호스트의 역할을 한다. 그 호스트가 세션을 빠지는지, 또는 어떠한 이유로써 응답하지 않게 되면 세션의 다른 클라이언트가 호스트로서 선택된다.

DirectPlay 음성 세션에서는, 피어 투 피어 음성 세션으로 같은 호스트 처리 프로세스가 발생한다. 다만, 음성 호스트는 DirectPlay 네트워크 세션과 무관계하게 처리 한다. 음성 호스트가 처리 하는 것은, 서버가 IDirectPlayVoiceServer::StopSession 를 호출했을 때인가, 또는 음성 호스트가 응답하지 않게 되었을 경우이다.

음성 호스트가 처리 하면, 새로운 호스트의 음성 클라이언트 메시지 핸들러는 DVMSGID_LOCALHOSTSETUP 메시지를 수신한다. 이 메시지의 주된 목적은, 새로운 호스트가, 음성 서버의 메시지를 받아들이는 콜백 메시지 핸들러의 포인터를 DirectPlay 에 건네줄 수 있도록(듯이) 하는 것이다. 콜백 메시지 핸들러를 지정하려면 ,DVMSGID_LOCALHOSTSETUP 구조체의 pMessageHandler 멤버에, 클라이언트 메시지 핸들러로부터 돌아오기 전에 음성 서버의 메시지 핸들러를 가리키는 값을 설정한다. 새로운 호스트는, 이 구조체의 pvContext 멤버에 값을 설정해, 음성 서버의 문맥값을 설정할 수도 있다.

음성 세션의 각 클라이언트는, 새로운 호스트의 DVID 가 포함된 DVMSGID_HOSTMIGRATED 메시지를 수신한다. 새로운 호스트로서 선택된 클라이언트도, 유효한 IDirectPlayVoiceServer 포인터를 수신한다. 이것은, 클라이언트가 음성 서버의 메서드를 호출하기 위해서(때문에) 사용한다. 새로운 호스트는,DVMSGID_LOCALHOSTSETUP 를 처리할 때까지는,DVMSGID_HOSTMIGRATED 를 수신하지 않는다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP