忘れないようにメモ。
IPv6で正しくアドレス指定しても、Connectでエラーになっていた。
「System.Net.Sockets.SocketException: 要求したプロトコルと互換性がないアドレスを使用しました。」だそうな。
IPv4指定にするとConnectを通過するので、IPv6に起因するものだと、思い至る(までに数時間)。
調べると、コンストラクタの中に、IPv6を使うか、IPv4を使うか決めるものがある。
フンガー!!
引数設定したら、例外発生しなくなり、通信できるようになった。
ムッキー!!
どのアドレスファミリで接続するかをConnectで判断しちゃいけないってことを忘れちゃいけない。
にしても、例外メッセージって、わかりにくいよね~。
問題の根本を見つけるまでにすごい時間がかかったりする。
いろいろ悩んだ。
今回は通信の両端を見ることが可能だったけど、クライアントだけとかサーバーだけとかだったら、何が原因か分からない場合もあると思う。
でも、「アドレスファミリが異なります」だったらすぐにわかったか?と言われると、そうとも言えないわけで・・・
Web検索すると、管理者権限が必要とか、VS2005がどうのとか、ズバリそのものって無いんだよね。
とりあえず、スキルアップには役立ったかなぁと。
コメントしちゃいなよ