使用 Java DatagramSockets,我可以将两个不同的套接字连接到同一本地端口但位于不同的本地地址吗?
With Java DatagramSockets, can I connect two different sockets to the same local port but on different local addresses?
使用 Java DatagramSockets,我可以将两个不同的套接字连接到同一个本地端口但在两个不同的本地地址上吗?
我有这种情况。我的电脑连接了 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 而另一个套接字的所有数据包都通过以太网?为什么或者为什么不?
可以,只要两个地址都不是 0.0.0.0。
If I bind to (8000, "0.0.0.0") and then disconnect the ethernet, get a packet on port 8000, reconnect the ethernet, disconnect the WiFi, get another packet on port 8000, would I would successfully get both packets, the one where the ethernet was disconnected and also the one where the WiFi was disconnected?
问题不清楚。如果您的意思是在 wifi 连接且以太网断开连接时 wifi 数据包到达,然后在以太网连接且 wifi 断开连接时以太网数据包到达,那么是的,您应该通过连接的接口获得任何到达的信息。 0.0.0.0 有时被称为 'all',但它实际上意味着 'any'。
使用 Java DatagramSockets,我可以将两个不同的套接字连接到同一个本地端口但在两个不同的本地地址上吗?
我有这种情况。我的电脑连接了 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 而另一个套接字的所有数据包都通过以太网?为什么或者为什么不?
可以,只要两个地址都不是 0.0.0.0。
If I bind to (8000, "0.0.0.0") and then disconnect the ethernet, get a packet on port 8000, reconnect the ethernet, disconnect the WiFi, get another packet on port 8000, would I would successfully get both packets, the one where the ethernet was disconnected and also the one where the WiFi was disconnected?
问题不清楚。如果您的意思是在 wifi 连接且以太网断开连接时 wifi 数据包到达,然后在以太网连接且 wifi 断开连接时以太网数据包到达,那么是的,您应该通过连接的接口获得任何到达的信息。 0.0.0.0 有时被称为 'all',但它实际上意味着 'any'。