public void ConnectWithV4AndV6_Success()
{
int port;
TcpListener listener = SocketTestExtensions.CreateAndStartTcpListenerOnAnonymousPort(out port);
IAsyncResult asyncResult = listener.BeginAcceptTcpClient(null, null);
TcpClient v6Client = new TcpClient(AddressFamily.InterNetworkV6);
v6Client.ConnectAsync(IPAddress.IPv6Loopback, port).GetAwaiter().GetResult();
TcpClient acceptedV6Client = listener.EndAcceptTcpClient(asyncResult);
Assert.Equal(AddressFamily.InterNetworkV6, acceptedV6Client.Client.RemoteEndPoint.AddressFamily);
Assert.Equal(AddressFamily.InterNetworkV6, v6Client.Client.RemoteEndPoint.AddressFamily);
asyncResult = listener.BeginAcceptTcpClient(null, null);
TcpClient v4Client = new TcpClient(AddressFamily.InterNetwork);
v4Client.ConnectAsync(IPAddress.Loopback, port).GetAwaiter().GetResult();
TcpClient acceptedV4Client = listener.EndAcceptTcpClient(asyncResult);
Assert.Equal(AddressFamily.InterNetworkV6, acceptedV4Client.Client.RemoteEndPoint.AddressFamily);
Assert.Equal(AddressFamily.InterNetwork, v4Client.Client.RemoteEndPoint.AddressFamily);
v6Client.Dispose();
acceptedV6Client.Dispose();
v4Client.Dispose();
acceptedV4Client.Dispose();
listener.Stop();
}