マルチキャスト ソケット オプションの動作
このページでは、さまざまなソケット オプション設定の状態に基づくマルチキャスト ソケット オプションの動作について説明します。
たとえば、このページでは、IP_ADD_SOURCE_MEMBERSHIP オプションが同じネットワーク インターフェイスで指定されたグループとソースのペアで既に設定されているソケットで、IP_ADD_SOURCE_MEMBERSHIP ソケット オプションが設定されている場合の動作について説明します。 別のネットワーク インターフェイス上の同じグループでIP_ADD_SOURCE_MEMBERSHIPを呼び出す許可があります。
このページは、Windows ソケット マルチキャスト アプリケーションの適切な設計とトラブルシューティングに役立ちます。
初期ソケット オプション | 後続のソケット オプションの競合 | エラーが返されました | 備考 |
---|---|---|---|
IP_ADD_MEMBERSHIP |
IP_ADD_MEMBERSHIP | WSAEADDRNOTAVAIL | 同じネットワーク インターフェイスで同じグループを持つIP_ADD_MEMBERSHIPを複数回呼び出さないでください。 |
IP_ADD_SOURCE_MEMBERSHIP | WSAEADDRNOTAVAIL | 以前に同じネットワーク インターフェイス上のIP_ADD_MEMBERSHIPで呼び出されたのと同じグループでIP_ADD_SOURCE_MEMBERSHIPを呼び出さないでください。 | |
IP_DROP_SOURCE_MEMBERSHIP | WSAEINVAL | 代わりにIP_BLOCK_SOURCEを使用してください。 | |
IP_UNBLOCK_SOURCE | WSAEINVAL | 同じネットワーク インターフェイスで以前にブロックされていないグループとソースのペアのブロックを解除しようとすると、エラーが返されます。 | |
IP_DROP_MEMBERSHIP | 同じグループまたはグループ/ソース ペアに対する後続の呼び出し | WSAEINVAL | グループまたはグループ/ソースのペアでソケット オプションの呼び出しを行うと、(メンバーシップの削除などの理由で) インクルージョン リストに現在含まれていない場合、エラーが発生します。 |
IP_ADD_SOURCE_MEMBERSHIP |
IP_ADD_MEMBERSHIP | WSAEADDRNOTAVAIL | 以前に同じネットワーク インターフェイス上のIP_ADD_SOURCE_MEMBERSHIPで呼び出されたのと同じグループでIP_ADD_MEMBERSHIPを呼び出さないでください。 |
IP_ADD_SOURCE_MEMBERSHIP | WSAEADDRNOTAVAIL | 以前に同じネットワーク インターフェイス上のIP_ADD_SOURCE_MEMBERSHIPで呼び出されたのと同じグループ/ソース ペアでIP_ADD_SOURCE_MEMBERSHIPを呼び出さないでください。 | |
IP_UNBLOCK_SOURCE | WSAEINVAL | 同じネットワーク インターフェイスで以前にブロックされていないグループとソースのペアのブロックを解除しようとすると、エラーが返されます。 | |
IP_DROP_SOURCE_MEMBERSHIP |
IP_UNBLOCK_SOURCE | WSAEINVAL | 同じネットワーク インターフェイスで以前にブロックされていないグループとソースのペアのブロックを解除しようとすると、エラーが返されます。 |
IP_DROP_SOURCE_MEMBERSHIP | WSAEADDRNOTAVAIL | 同じネットワーク インターフェイスの包含リストにないグループ/ソース ペアを削除しようとすると、エラーが返されます。 | |
IP_BLOCK_SOURCE |
IP_BLOCK_SOURCE | WSAEADDRNOTAVAIL | 同じネットワーク インターフェイスで既にブロックされているグループとソースのペアをブロックしようとすると、エラーが返されます。 |
IP_ADD_SOURCE_MEMBERSHIP | WSAEINVAL | 代わりにIP_UNBLOCK_SOURCEを使用してください。 | |
IP_ADD_MEMBERSHIP | WSAEINVAL | 代わりにIP_UNBLOCK_SOURCEを使用してください。 | |
IP_UNBLOCK_SOURCE | IP_UNBLOCK_SOURCE | WSAEADDRNOTAVAIL | 同じネットワーク インターフェイス上のブロックリストにないグループ/ソースペアのブロックを解除しようとすると、エラーが返されます。 |