最近在做一个项目时,需要用到UDP的组播功能。在写完相应代码后,进行上机测试。
用的A、B两台机器都是实体机,不是虚拟机,发现无论是在A还是在B上发送多播信息,多播组中的信息都无法被对方接收。
解决方法:
把A电脑上的多余网卡全部禁用,只保留通信用的那张网卡。
把B电脑上的多余网卡全部禁用,只保留通信用的那张网卡。
这时,再进行测试,UDP多播信息就可以被成功接收了。
出现该问题的原因:
多张网卡,java多播中的receive方法阻塞,任何一张网卡都无法接收多播信息。