다음을 통해 공유


멀티호밍 및 PGM

멀티홈이 있는 PGM 보낸 사람 또는 수신자는 특별히 고려해야 합니다. 이 페이지에서는 고려 사항을 설명하고 모범 프로그래밍 방법에 대한 지침을 제공합니다.

멀티홈 PGM 발신자

애플리케이션이 connect 함수를 호출할 때 인터페이스를 지정하지 못하면 사용 가능한 첫 번째 인터페이스가 사용됩니다. 사용할 수 있는 인터페이스가 없으면 연결 이 실패합니다.

애플리케이션이 RM_SET_SEND_IF 소켓 옵션을 사용하여 인터페이스를 지정하면 바인딩 시도가 TCP/IP를 사용하여 해당 인터페이스에 암시적으로 시도되고 TCP/IP가 바인딩 요청에 실패하면 실패합니다. RM_SET_SEND_IF 사용하여 인터페이스를 여러 번 설정한 경우 마지막으로 설정된 인터페이스만 적용할 수 있습니다.

Windows 소켓은 설정된 인터페이스를 유지 관리하며, 해당 인터페이스가 사라지면 세션의 연결이 끊어집니다.

멀티홈 PGM 수신기

애플리케이션이 listen 함수를 호출할 때 인터페이스를 지정하지 못하면 기본 인터페이스가 사용됩니다. 사용할 수 있는 인터페이스가 없으면 바인딩 이 실패합니다.

애플리케이션이 RM_ADD_RECEIVE_IF 사용하여 수신 대기할 하나 이상의 인터페이스를 지정하는 경우 Windows 소켓은 TCP/IP를 사용하여 요청된 인터페이스 또는 인터페이스에 바인딩하려고 시도합니다. TCP/IP의 오류로 인해 이 요청이 실패합니다. PGM 발신자 사례와 달리 수신 인터페이스를 여러 번 추가하면 수신 대기가 성공적으로 추가된 모든 인터페이스에 게시됩니다. RM_DEL_RECEIVE_IF 소켓 옵션을 사용하여 인터페이스에서 수신 대기를 중지합니다.

Windows 소켓은 지정된 여러 수신 대기 인터페이스에 대한 상태를 유지하지 않고 대신 TCP/IP를 사용하여 이를 수행합니다. 그러나 세션이 진행되면 Windows 소켓은 해당 세션에 대해 들어오는 인터페이스를 추적하고 해당 인터페이스가 사라지면 Windows 소켓에서 세션의 연결을 끊습니다.