可能重复:
Receving multiple multicast feeds on the same port - C, Linux
我有一个应用程序正在同一端口上从多个组播源接收数据。我能够收到数据。但是,我试图考虑每个组的统计数据(即收到的消息,接收的字节数),并且所有数据都混淆了。有谁知道如何解决这个问题?如果我试着查看发件人的地址,那么它不是多播地址,而是发送机器的IP。
我使用以下套接字选项:
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = inet_addr("224.1.2.3");
mreq.imr_interface.s_addr = INADDR_ANY;
setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
还有:
setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse));
我感谢任何帮助!!!