使用Java DatagramSockets,我可以将两个不同的socket连接到同一个本地端口但位于不同的本地地址上吗?
使用Java DatagramSockets,我可以将两个不同的socket连接到同一个本地端口,但连接到两个不同的本地地址吗
我有这种情况。我的电脑连接了WiFi卡和以太网电缆。Wifi和以太网都在工作,它们有两个不同的地址(“192.168.10.104”和“192.168.10.108”)。当我创建一对DatagramSocket时,我会:
final String wiFiCardAddressName = "192.168.10.104";
final String ethernetAddressName = "192.168.10.108";
final InetAddress wiFiCardAddress = InetAddress.getByName(wiFiCardAddressName);
final InetAddress ethernetAddress = InetAddress.getByName(ethernetAddressName)
DatagramSocket datagramSocket1 = DatagramSocket(8000, wiFiCardAddress);
DatagramSocket datagramSocket2 = DatagramSocket(8000, ethernetAddress);
// ...
这样行吗?一个插座的所有数据包都要通过WiFi,而另一个插座的所有数据包都要通过以太网吗?为什么
# 1 楼答案
是的,只要两个地址都不是0.0.0.0
问题还不清楚。如果你的意思是wifi数据包在连接wifi和断开以太网时到达,然后以太网数据包在连接以太网和断开wifi时到达,那么是的,你应该通过连接的接口获得任何到达的数据。0.0.0.0有时被称为“所有”,但它真正的意思是“任何”