1

簡単な作業だと思っていたことが、ちょっとした悪夢に変わりました。

要するに、ポート 8888、特定のリンク ローカル IPv6 アドレスに UDP リスナーを作成する必要があるということです。

次の行が実行されると、例外がスローされます。

_udpSoc = new UdpClient(MONITOR_INPUT_EVENT_SOCKET, AddressFamily.InterNetworkV6);

(ここで、MONITOR_INPUT_EVENT_SOCKET は値 8888 の const int です)

サポートを探してみたところ、まったく同じ行について説明している MSDN の記事を見つけました。

スローされた SocketException は、「要求されたアドレスはそのコンテキストでは有効ではありません」であり、ErrorCode は 10049 で、スタックトレースは次のとおりです。

at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.Net.Sockets.UdpClient..ctor(Int32 port, AddressFamily family)
at [my code...]

または、問題の行を次のように変更すると:

_udpSoc = new UdpClient(_groupEp);

(ここで、_groupEp は IPAddress.Any に設定された IPEndPoint であり、ScopeId は正しいインターフェイスと MONITOR_INPUT_EVENT_SOCKET のポートを設定します)

...そして、以前と同じ ErrorCode とスタック トレースで、「要求されたアドレスはそのコンテキストでは有効ではありません」という例外を取得します。

何がうまくいかないのですか?

4

0 に答える 0