クライアントを起動しようとしていますが、エラーが発生します。サーバーは同じコンピューター上で既に実行されています。したがって、GetHostEntry で「localhost」を使用しています。
IPHostEntry ipHostInfo = System.Net.Dns.GetHostEntry("localhost");
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, Port);
Sock = new Socket(remoteEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
Sock.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), Sock);
しかし、「ターゲットマシンが積極的に拒否したため、接続できませんでした」ということがあります。
System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it [::1]:7777
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
at NotifierClient.AsynchronousClient.ConnectCallback(IAsyncResult ar) in *** :line 156
156行目は
client.EndConnect(ar);
理由は何ですか?ipHostInfo.AddressList[0] が IPv6 であるためでしょうか? どうすればIPv4アドレスを受け入れることができますか?