0
这里是我的代码,我要使用它的ipv6地址连接到谷歌,但socket.connect()方法最后是抛出超时异常,我需要一些解决方案这一点,我应该在哪里更改我的代码,Socket.connect()方法失败的ipv6地址
Uri google = new Uri("http://www.google.com");
IPAddress[] ips = Dns.GetHostEntry(google.DnsSafeHost).AddressList;
IPAddress ipAddress = ips[0];
foreach (IPAddress ip in ips)
{
if (ip.AddressFamily == AddressFamily.InterNetworkV6)
ipAddress = ip;
}
IPEndPoint endPoint = new IPEndPoint(ipAddress, 80);
Socket socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 60 * 1000);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 60 * 1000);
socket.Connect(endPoint);
我必须要连接到它的ipv6地址,而不是ipv4 – hsCode
它对IP4地址工作正常吗?只是想知道,如果您将InterNetworkV6更改为InterNetwork,那么工作是否正常。 –
是它使用ipv4地址 – hsCode