我的服务器目前能够发送和接收多播数据包。我正在添加接收和发送单播数据包的能力。所以我创建了“DatagramSocket uniRecv”和“DatagramSocket uniSend”来模仿多播的完成方式。问题是当我收到一个数据包时,我需要一种方法来判断它是多播还是单播。我认为“multiRecv.receive(packet)”只适用于多播数据包,但显然它也适用于单播数据包。有没有办法在执行 .receive(packet) 之前或之后判断它是哪种数据包?
我需要知道,因为当我发出回复时,必须使用与收到回复相同的方法来完成。因此,如果我收到单播,我需要发送单播,如果我收到多播,我需要发送多播。
另一方面,MulticastSocket 也可以发送单播消息吗?
编辑:虽然接受的帖子是真实的,但我能够找到解决方法。通过强制服务器将数据包发送给我,使用不同的端口进行单播和多播,我能够通过使用 packet.getPort() 找出它是哪一个。