套接字可以实现吗?

时间:2012-03-25 16:15:47

标签: java sockets

我有两个线程通过DatagramSockets进行通信。我现在想要第三个线程能够听取通信。在阅读Broadcasting to Multiple Recipients之后,第三个线程上的两个MulticastSockets似乎正在寻找。

但是,当我尝试将MulticastSockets绑定到DatagramSockets在前两个线程中使用的相同端口时,我收到“java.net.BindException:Address in in use:无法绑定”错误。

3 个答案:

答案 0 :(得分:1)

在这里的一些答案和评论的帮助下,我通过执行以下操作解决了这个问题。

我更改了2个原始线程以使用多播套接字进行通信,第三个线程现在有2个Mulitcast套接字绑定到这些端口,因此它可以监听通信。可能不是最美丽的解决方案,但它足以满足我的需求

答案 1 :(得分:0)

好吧,你得到异常是因为你无法将多个套接字绑定到同一个端口。如果要同时支持点对点和多播,则需要为每个端口指定不同的端口。否则,如果您一直在进行多播广播,那么您可以完全删除常规数据报套接字。

答案 2 :(得分:0)

同一程序中有两个线程通过套接字进行通信?如何为他们创建queue,以便它只是在进程中进行通信?