我正在尝试使用Java实现多播组,其成员可以使用DatagramPackets
发送和接收MulticastSockets
。发件人依赖接收成员的确认,以确保所有成员都收到了传输的文件。
我的问题是接收成员是否有可能确定数据包的发送者,因为所有成员都通过他们加入的多播地址发送和接收数据包。
这应该可以通过为每个成员分配一个ID(将作为一种前导码)包含在传输的第一个数据包中,但我想知道是否有更好的解决方案。
是否有任何可用于确定发件人的信息存储在DatagramPacket
已发送?
答案 0 :(得分:0)
源地址始终为unicast
。换句话说,数据传输始终从single
源开始。因此,无论我们在网络中考虑哪个节点,它获得的数据包都将具有源MAC地址和目标MAC地址(将进行多播)。使用源MAC地址,您应该能够轻松地告知发送方的数据包。我相信你已经错误地模拟了你的问题。向我们提供您的UML图表/代码,以便我们更好地分析它。