簡體   English   中英

Java中的組播,無需目標主機加入該組

[英]Multicast in java without requiring destination hosts to join the group

這可能是一個愚蠢的問題,我不知道是否可能。 例如,如果我有4個服務器,分別是A,B,C和D。在我在Internet上建立的示例中。 如果主機A要向C和D發送消息,則A必須加入該組,C和D也是如此。有時我的問題是,我可能希望A向B和C或僅向C和D發送消息。 甚至B都可以稍后向A和C或A和D發送消息。 有沒有解決這個問題的優雅方法?

更多詳細信息:我想要實現的是一個應用程序,它能夠將消息發送到其他任意應用程序的列表。 因此,列表不會每次都保持不變。 在Java中,當前為了通過多播做到這一點,發送者和接收者必須加入同一組。 每次更改列表時都需要重復此操作。


非常感謝你。

通常,這是通過在接收側安裝一個濾波器來完成的。 在數據包中包括要接收該消息的服務器列表,如果服務器收到了不適合該消息的消息,它將忽略該消息。 有標准的過濾技術,但是如果您需要更靈活的方法,則必須在代碼中添加它。

如果主機A要向C和D發送消息,則A必須加入組,C和D也必須加入

否。只有C和D才能加入該組。

我的問題有時是,我可能希望A將消息發送到B和C,或者僅發送給C和D。 甚至B可能會在以后向A和C或A和D發送消息

聽起來根本不像多播。 如果您有這么少的主機,為什么不只使用單播呢?

在Java中,當前為了通過多播做到這一點,發送者和接收者必須加入同一組。

那是不對的。

  1. Java與它無關。
  2. “當前”都沒有。
  3. 不需要發送者加入多播組,或者用Java而言,甚至不需要使用MulticastSocket而不是DatagramSocket.

Java僅提供了基於IP多播構建的類庫,如1989年的RFC 1112中所定義。

在我看來,可以通過快速使用多個多播組或同一個多播組中的多個端口來實現您想要的。

但是就目前而言,您的問題在術語上是矛盾的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM