我试图绑定一个Java,以便在特定端口和子接口上侦听UDP通信,但我似乎无法让它在我的linux主机上工作,因为我已经创建了几个虚拟网络子接口(特别是下面所示的我想要听的那个)。如果我在同一个网络Windows PC中承载java应用程序(使用不同的IP地址,但是对于绑定调用,我只需指定侦听端口,在windows上也不使用子接口),代码就很好了。
这是ifconfig在我的linux盒上显示虚拟网络适配器(子接口)的相关部分输出。
p2p1:37: flags=4163<UP,BnetROADCAST,RUNNING,MULTICAST> mtu 1500
ine
我将udp单播数据包从窗口发送到linux。
我已经编写了简单的应用程序udp客户端和srever使用boost。
我在windows上运行客户端(udp发送方),在linux上运行服务器(udp接收方)。
我的客户端正在发送udp数据包,但是linux上的udp接收器没有接收到这些数据包。但是我可以在wireshark上看到udp数据包(它运行在我的linux上)。
我测试了端口和ipaddress,它们都是正确的。
下面是运行在linux上的代码。
如果我同时在windows上运行(客户端和服务器),它可以正常工作。
using boost::asio::ip::udp;
class u