C++ 对多播的单播响应?

C++ 对多播的单播响应?,c++,networking,udp,multicast,C++,Networking,Udp,Multicast,这可能是一个愚蠢的问题(但我对多播是新手)。我有一个生成两个线程的进程——一个用于侦听多播IP(listener),另一个用于向其广播(speaker)。我计划引入许多这样的过程 我的问题是,如果一个监听器接收到一个多播数据包,它是否可以在不打开一个新的单播类型套接字的情况下,将单播响应发送给任何一个进程 编辑:至少,我可以提取演讲者的多播数据包的IP地址,并连接到进程可能正在监听的某个单播类型的端口,对吗 编辑:至少,我可以提取说话人的多播数据包的IP地址,并连接到进程可能正在监听的某个单播类

这可能是一个愚蠢的问题(但我对多播是新手)。我有一个生成两个线程的进程——一个用于侦听多播IP(
listener
),另一个用于向其广播(
speaker
)。我计划引入许多这样的过程

我的问题是,如果一个
监听器
接收到一个多播数据包,它是否可以在不打开一个新的单播类型套接字的情况下,将单播响应发送给任何一个进程

编辑:至少,我可以提取
演讲者的多播数据包的IP地址,并连接到进程可能正在监听的某个单播类型的端口,对吗

编辑:至少,我可以提取说话人的多播数据包的IP地址,并连接到进程可能正在监听的某个单播类型的端口,对吗

多播数据包(实际上是任何IP数据包)都有源IP和目标IP,多播的唯一区别是目标地址是组而不是计算机,从224.0.x.x开始。 源始终是发送方的真实IP(除非它位于NAT之后,在这种情况下,它将是网关的IP地址)


这意味着您可以提取发送方的IP,如果该发送方有一个服务器(=侦听)套接字,并且所有网络配置(转发表和防火墙)都允许访问该套接字,您将能够启动与它的TCP会话…

我相信答案是否定的,是的,多播真的有连接的概念吗?我有点怀疑,因为MC的全部意义在于发送者不关心谁在听。