我的 Java Socket 经验有限,所有这些都使用 TCP。我正在尝试学习 UDP。我正在运行一个使用 UDP 多播的多进程应用程序。经过一些简短的研究(以及我对该主题的初步理解),我认为多播将是正确的方法。
隐喻地,我希望所有进程共享同一个“房间”,并且应该互相“大喊大叫”。因此,当进程 1 发送消息“你好”时,我希望所有进程 2..n 接收该数据包,反之亦然。
起初这一切似乎都在工作,但后来我意识到我有一个错误(如果你可以这样称呼它)。我启动第一个进程,当我启动第二个进程时,第一个进程接收到第二个进程的消息,反之则不然。
我想知道,当我MulticastSocket receive()
在进程 1 上执行此操作时,是否有效地将其DatagramPacket
从堆栈中取出,然后进程 2 看不到它何时执行recieve()
?