如何在Java中指定网络接口

如何在Java中指定网络接口,java,Java,我想在Java代码中使用WiFi连接。如何使用特定的WiFi网络接口从Internet下载文件 换句话说,如何强制java通过特定的网络接口发送数据包 请看这里: 您可以使用该类查询可用的网络接口。然后使用bind()方法将此接口绑定到套接字 NetworkInterface ni = NetworkInterface.getByName("eth0"); Socket socket = new Socket(); socket.bind(ni.getInetAddresses().nextEl

我想在Java代码中使用WiFi连接。如何使用特定的WiFi网络接口从Internet下载文件


换句话说,如何强制java通过特定的网络接口发送数据包

请看这里:


您可以使用该类查询可用的网络接口。然后使用
bind()
方法将此接口绑定到套接字

NetworkInterface ni = NetworkInterface.getByName("eth0");
Socket socket = new Socket();
socket.bind(ni.getInetAddresses().nextElement());

这些都是在Java教程中指定的:

通常情况下,您不会关心它来自哪一个,您只需要文件!为什么需要通过特定的连接类型?@X-Zero:例如,WiFi连接有到按流量付费互联网连接的路由,而LAN连接有按时间付费互联网连接。如果速度允许,您更愿意通过按次付费连接处理下载。我的两分钱。@Luca-+1-是的,这将是一个有效的用例,尽管这可能应该在原始问题中指定,如果是这样的话。真的,我只是想确保OP没有试图给自己一个他可能没有的问题。当我尝试用java发送UDP数据包时,它会显示错误。线程“main”java.net.BindException中的异常:无法分配请求的地址:java.net.DualStackPlainDatagramSocketImpl.socketSend中的数据报发送失败,java.net.DualStackPlainDatagramSocketImpl.send中的本机方法,java.net.DatagramSocket.send中的DualStackPlainDatagramSocketImpl.send(未知源)