Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 限制webclient使用wifi或以太网,反之亦然_C#_Webclient - Fatal编程技术网

C# 限制webclient使用wifi或以太网,反之亦然

C# 限制webclient使用wifi或以太网,反之亦然,c#,webclient,C#,Webclient,我已经连接到wifi,而且我可以通过以太网访问互联网。 是否有控制WebClient.DownloadString使用以太网而不是wifi或wifi而不是以太网的方法?这是一些高级功能,被HttpWebRequest、WebRequest、WebClient等抽象掉了。但是,您可以使用TcpClient(使用)或使用套接字并调用Socket.Bind来执行此操作 如果需要使用特定的本地端点,请使用Bind方法。必须先调用Bind,然后才能调用Listen方法。除非需要使用特定的本地端点,否则在使

我已经连接到wifi,而且我可以通过以太网访问互联网。
是否有控制WebClient.DownloadString使用以太网而不是wifi或wifi而不是以太网的方法?

这是一些高级功能,被HttpWebRequest、WebRequest、WebClient等抽象掉了。但是,您可以使用TcpClient(使用)或使用套接字并调用Socket.Bind来执行此操作

如果需要使用特定的本地端点,请使用Bind方法。必须先调用Bind,然后才能调用Listen方法。除非需要使用特定的本地端点,否则在使用Connect方法之前不需要调用Bind。 绑定到要使用的接口的本地端点。如果您的本地计算机具有用于WiFi地址的ip地址192.168.0.10,则使用该地址的本地端点将强制套接字使用该接口。默认值是unbound(实际上是0.0.0.0),它告诉网络堆栈自动解析您想要绕过的接口

下面是一些基于Andrew评论的示例代码。请注意,将0指定为本地端点端口意味着它是动态的

using System.Net;
using System.Net.Sockets;

public static class ConsoleApp
{
    public static void Main()
    {
        {
            // 192.168.20.54 is my local network with internet accessibility
            var localEndPoint = new IPEndPoint(IPAddress.Parse("192.168.20.54"), port: 0);
            var tcpClient = new TcpClient(localEndPoint);

            // No exception thrown.
            tcpClient.Connect("stackoverflow.com", 80);
        }
        {
            // 192.168.2.49 is my vpn, having no default gateway and unable to forward
            // packages to anything that is outside of 192.168.2.x
            var localEndPoint = new IPEndPoint(IPAddress.Parse("192.168.2.49"), port: 0);
            var tcpClient = new TcpClient(localEndPoint);

            // SocketException: A socket operation was attempted to an unreachable network 64.34.119.12:80
            tcpClient.Connect("stackoverflow.com", 80);
        }
    }
}