|
用两块网卡接收组播包,主要程序如下:
m_sock = socket (AF_INET, SOCK_RAW, IPPROTO_IP);
localaddr.sin_addr.s_addr = INADDR_ANY;
localaddr.sin_family = AF_INET;
localaddr.sin_port = htons(0);
bind(m_sock, (PSOCKADDR)&localaddr, sizeof(localaddr));
ipmr.imr_multiaddr.s_addr = GROUP_ADDR;
ipmr.imr_interface.s_addr = INADDR_ANY;
setsockopt(ospf_sock,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char *)&ipmr,sizeof(ipmr)
);
结果socket只能接收到一块默认网卡上的数据包,用sniffer监测发现其实两块网卡上都有
数据到达。请教如何修改才能在同一socket中收到两块网卡上的数据包?急用,谢谢! |
|