我有这个代码通过局域网发送广播消息,它工作正常,直到我安装虚拟机,我现在有一个虚拟网络适配器。
String address = "255.255.255.255";
try {
packet.setAddress(InetAddress.getByName(address));
packet.setPort(59123);
DatagramSocket socket = new DatagramSocket();
socket.setBroadcast(true);
socket.send(packet);
...
现在当我尝试播放时,Wireshark显示从192.168.56.1(虚拟适配器的IP地址)发送的消息
我如何设置我想用来发送信息的适配器?
答案 0 :(得分:1)
使用DatagramSocket constructor,它将本地inet地址绑定到。
答案 1 :(得分:0)
clientSocket = new DatagramSocket(0, InetAddress.getByName("IP address"))
这里0表示操作系统会自动为您分配一个端口。或者,您可以提供一个端口号,通过该端口号发送UDP数据包。
Suppose your ethernet IP address 192.168.1.2
and your wifi IP address is: 192.168.2.2
如果你想通过wifi网卡发送UDP数据包,那么IP地址将是192.168.2.2。