- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的服务器当前能够发送和接收多播数据包。我还添加了接收和发送单播数据包的功能。因此,我创建了“DatagramSocket uniRecv”和“DatagramSocket uniSend”来模仿多播的完成方式。问题是,当我收到数据包时,我需要一种方法来判断它是多播还是单播。我认为“multiRecv.receive(packet)”只能对多播数据包起作用,但显然它也可以对单播数据包起作用。有没有办法告诉在执行 .receive(packet) 之前或之后检测它是哪种数据包?
我需要知道,因为当我发送响应时,必须使用与收到响应相同的方法来完成。因此,如果我接收单播,我需要发送单播,如果我接收多播,我需要发送多播。
另一方面,MulticastSocket 也可以发送单播消息吗?
编辑:尽管接受的帖子是真实的,但我还是找到了解决方法。通过强制服务器向我发送数据包,使用不同的端口进行单播和多播,我能够使用 packet.getPort() 找出它是哪一个。
最佳答案
I need a way to tell if it is multicast or unicast. I thought "multiRecv.receive(packet)" would only work on multicast packets, but apparently it can also work on unicast packets. Is there a way to tell either before or after doing .receive(packet) to detect which kind of packet it is?
不在 Java 中。 BSD Sockets API 中有一个功能可以检索数据报的目标地址,但它没有在 Java 中实现。
I need to know because when I send out a response it has to be done using the same method as it was received. So if I receive unicast I need to send unicast and if I receive multicast I need to send multicast.
抱歉,无法在 Java 方面为您提供帮助。
On another note, can a MulticastSocket also send a unicast message?
是的。还请注意,您不需要 MulticastSocket
来发送多播,并且您不需要加入组只是为了发送。
关于java - MulticastSocket 确定收到的消息是否是单播的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288950/
我是一名优秀的程序员,十分优秀!