确定具有相同IP的多播发件人

康纳·泰勒(Conor Taylor)

我正在用Java编写基于多播的消息传递程序。为了对消息进行流控制,我希望组中的每个成员维护该组中所有其他成员的列表。我可以通过为每个成员分配一个单独的ID来实现此目的,该ID与数据一起发送,但是我想根据地址来区分它们。

唯一的问题是,我正在本地计算机上运行该程序的许多实例,因此它们都具有相同的地址。该组的每个成员在单独的线程中运行一个侦听器,该侦听器在指定的多播IP的某个端口上侦听消息,并且每个发送方都发送到该端口。是否可以为每个发件人分配一个单独的端口?接收器可以在所有端口上监听吗?

接收器使用以下方式绑定到端口:

address = InetAddress.getByName(multicastIP);
socket = new MulticastSocket(this.port);
socket.joinGroup(address);

消息使用以下方式发送:

packet = new DatagramPacket(data, data.length, address, port);
socket.send(packet);
用户名

我想根据地址来区分它们。

唯一的问题是,我正在本地计算机上运行该程序的许多实例,因此它们都具有相同的地址。

因此,您不能仅根据地址来区分它们。

是否可以为每个发件人分配一个单独的端口?

是的,如果它们都使用不同的套接字。

接收器可以在所有端口上监听吗?

接收器不需要在其他端口上侦听。您只发送到一个端口,只需要在一个端口上接收。

如果发送方也是接收方,就会出现问题。如果真是这样,那将是行不通的:您将拥有大量的端口,并且您基本上将必须多播到所有已知的端口,而这实际上根本不是多播。在这种情况下,您将需要设计一个唯一的客户端ID,例如UUID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我收到一封电子邮件(gmail),如果发件人和收件人使用相同的域,如何知道发件人的 IP 地址

来自分类Dev

发送具有不同“发件人的MAC”的数据包(帧)?

来自分类Dev

发件人通知

来自分类Dev

从 WPF 上的发件人(多类型)获取名称

来自分类Dev

Spring Integration如何获取发件人的IP地址?

来自分类Dev

如何跟踪电子邮件发件人的实际IP?

来自分类Dev

JmsOutboundGateway错误:没有发件人等待回复

来自分类Dev

无法发送没有“发件人”标题的邮件

来自分类Dev

隐藏发件人没有短信PHP

来自分类Dev

带有发件人姓名的 vba Outlook 签名

来自分类Dev

在PHP中具有发件人地址的发件人地址

来自分类Dev

如何将具有“读取”特征的类似字符串的内容传递给“发件人”的实现?

来自分类Dev

发件人政策框架

来自分类Dev

确定第二个表单打开时的发件人?

来自分类Dev

确定第二个表单打开时的发件人?

来自分类Dev

使用发件人确定在ListView中按下了什么按钮

来自分类Dev

是否可以确定使用副驾驶消息服务时使用的发件人号码

来自分类Dev

发件人标签始终是相同的数据(索引错误?)

来自分类Dev

scapy为sr1()使用了错误的发件人MAC和IP地址

来自分类Dev

Laravel密码重置“无发件人”

来自分类Dev

GCM发件人ID不匹配

来自分类Dev

Akka测试-发件人已死

来自分类Dev

phpmailer更改邮件发件人

来自分类Dev

Go频道中的发件人顺序

来自分类Dev

参考Qt中的发件人对象

来自分类Dev

从发件人获取子控件内容

来自分类Dev

如何识别发件人控件?

来自分类Dev

INFURA:无法识别发件人帐户

来自分类Dev

更改DocuSign信封上的发件人

Related 相关文章

热门标签

归档