我正在尝试在 JAVA 中发送带有数据报的 UDP,并且我的机器有几个具有不同 IP 的 NIC。
如何设置我希望从哪个 NIC 发送数据包?(假设我的机器上有不止一个??)
编辑我
我没有使用 Socket,我使用的是 DatagramSocket 并尝试像这样进行绑定:
/*binding */
DatagramSocket ds = new DatagramSocket(1111);
NetworkInterface nif = NetworkInterface.getByIndex(nicIndex);
Enumeration<InetAddress> nifAddresses = nif.getInetAddresses();
ds.bind(new InetSocketAddress(nifAddresses.nextElement(), 0));
但是当我这样做时,我无法再连接(或无法获取数据包..)。问题是我有 2 个 NIC,但一个用于内部网络,另一个用于 Internet .. 我需要我的所有服务器数据只在内部一个..
编辑二
为了澄清 。这个应用程序是一个服务器 - 并且 SERVER 有 2 个 NICS。一个局域网,一个用于广域网。
对我来说,另一种方法是以某种方式指定 ROUTING - 意思是告诉每个数据包确切地使用哪个 NIC ..
如何在 JAVA 中做这样的路由?