私のアプリケーションは、UDP ソケットを作成し、いくつかのオプションを設定しています。オプションの1つはIP_MULTICAST_TTL.
アプリケーションが Windows 7 で実行されていて、wireshark を使用してワイヤ上のトラフィックを観察すると、TTL が常に 1 であることがわかります。これは、setsockopt()
が何の影響も与えていないことを意味します (ただし、エラーは返されません)。
コードを掘り下げると、IP_MULTICAST_TTL
値は Windows 7 では 10、他の Windows バージョンでは 3 であることがわかりました。
Windows 7 で値を強制的に 3 にすると、setsockopt()
問題なく動作し、wireshark は正しい値を報告します。
次の記事を見つけました: http://support.microsoft.com/kb/257460そして、Winsock2.h の後に Ws2tcpip.h をインクルードしていること、および Ws2_32.lib に対してリンクしていることを確認します。
助言がありますか?