标签: multicast

你如何在Python中UDP多播?

如何在Python中发送和接收UDP多播?有标准库吗?

python multicast

81
推荐指数
4
解决办法
10万
查看次数

如何为我的应用程序选择多播地址?

我应该如何为我的应用程序选择IPv4多播地址?我可能需要多个(最终可能是整个范围),但只是想避免与其他应用程序冲突.

  • 数据包将完全包含在管理域中,可能是LAN
  • 如果我的应用程序的几个独立实例在同一网络上使用,他们每个都可以使用自己的多播地址 - 但如果他们不这样做,他们将能够共存,他们只会忽略少量开销彼此的包裹.
  • 我的数据包已经包含一个"幻数"以避免出现问题
  • 我将检查发起人地址(我知道当然可以欺骗),TTL和其他事情,以防止意外的数据包混乱.

想法请:)

目前我刚从"本地使用"空间分配了一个任意的空间,239.255.42.99

networking udp multicast ipv4

65
推荐指数
3
解决办法
5万
查看次数

绑定多播(UDP)套接字是什么意思?

我在具有多个网络接口的主机之间使用多播UDP.我正在使用boost :: asio,并且被接收器必须进行的2个操作混淆:bind,然后是join-group.

当您对加入的每个组播组执行此操作时,为什么需要在绑定期间指定接口的本地地址?

姐妹问题是关于多播端口:因为在发送期间,您发送到多播地址和端口,为什么在订阅多播组期间,您只需指定地址,而不是端口 - 在混乱的呼叫中指定的端口绑定.

注意:"join-group"是一个包装器setsockopt(IP_ADD_MEMBERSHIP),如文档所示,可以在同一个套接字上多次调用以订阅不同的组(通过不同的网络?).因此,每次订阅组时,抛弃绑定调用并指定端口是完全合理的.

从我所看到的,总是绑定到"0.0.0.0"并在加入组时指定接口地址,效果非常好.困惑.

sockets udp bind multicast boost-asio

65
推荐指数
4
解决办法
10万
查看次数

使用Ehcache多播获取"无法分配请求的地址"java.net.SocketException

获取java.net.SocketException试图启动一个多播提供程序时:

2013-09-11 11:45:44,204 [main] ERROR net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider: Error starting heartbeat. Error was: Can't assign requested address
java.net.SocketException: Can't assign requested address
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.join(AbstractPlainDatagramSocketImpl.java:178)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:319)
at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver.init(MulticastKeepaliveHeartbeatReceiver.java:88)
at net.sf.ehcache.distribution.MulticastRMICacheManagerPeerProvider.init(MulticastRMICacheManagerPeerProvider.java:95)
Run Code Online (Sandbox Code Playgroud)

java multicast ehcache ipv6 multicastsocket

37
推荐指数
3
解决办法
3万
查看次数

如何在socket.io nodejs服务器上列出房间

在关于如何创建socket.io组播组的问题上取得进展后,我发现制作房间是一种很好的方式来完成我需要的工作.

但是,如果没有额外的数据结构,了解所有房间会很棒.

是否可以从服务器套接字获取服务器上所有房间的列表?

multicast node.js socket.io

30
推荐指数
4
解决办法
4万
查看次数

我可以为TCP使用广播或多播吗?

对于Internet协议(IP),我可以使用多播:

另外,在示例中,对于UDP,我可以使用:

  • broadcast - 将数据包发送到地址范围
  • multicast - 将数据包发送到指定地址列表

但是我可以将这些内容用于TCP吗?

ip udp tcp multicast broadcast

28
推荐指数
2
解决办法
3万
查看次数

NodeJS UDP组播如何

我正在尝试将UDP多播数据包发送到:230.185.192.108,以便所有订阅者都会收到.有点卡住了.我相信它正确播放,但似乎无法与任何客户端进行任何选择.

服务器:

var news = [
   "Borussia Dortmund wins German championship",
   "Tornado warning for the Bay Area",
   "More rain for the weekend",
   "Android tablets take over the world",
   "iPad2 sold out",
   "Nation's rappers down to last two samples"
];

var dgram = require('dgram'); 
var server = dgram.createSocket("udp4"); 
server.bind();
server.setBroadcast(true)
server.setMulticastTTL(128);
server.addMembership('230.185.192.108'); 

setInterval(broadcastNew, 3000);

function broadcastNew() {
    var message = new Buffer(news[Math.floor(Math.random()*news.length)]);
    server.send(message, 0, message.length, 8088, "230.185.192.108");
    console.log("Sent " + message + " to the wire...");
    //server.close();
}
Run Code Online (Sandbox Code Playgroud)

客户

var PORT …
Run Code Online (Sandbox Code Playgroud)

udp multicast node.js socket.io

26
推荐指数
2
解决办法
3万
查看次数

LAN中的多播与广播

使用多播组发送消息而不是仅仅将它们广播到特定端口是否有任何优势?据我所知,在广播时,其他不希望邮件的计算机也会收到这些邮件,但它会对性能/流量产生多大影响?不关心的计算机不会立即转储消息吗?

作为一个侧面问题,局域网外的组播是否工作?

networking multicast broadcast

24
推荐指数
1
解决办法
3万
查看次数

您如何以编程方式为多播发现机制配置hazelcast?

您如何以编程方式为多播发现机制配置hazelcast?


细节:

文档仅提供TCP/IP的示例并且已过时:它使用不再存在的Config.setPort().

我的配置看起来像这样,但发现不起作用(即我得到输出"Members: 1":

        Config cfg = new Config();                  
        NetworkConfig network = cfg.getNetworkConfig();
        network.setPort(PORT_NUMBER);

        JoinConfig join = network.getJoin();
        join.getTcpIpConfig().setEnabled(false);
        join.getAwsConfig().setEnabled(false);
        join.getMulticastConfig().setEnabled(true);

        join.getMulticastConfig().setMulticastGroup(MULTICAST_ADDRESS);
        join.getMulticastConfig().setMulticastPort(PORT_NUMBER);
        join.getMulticastConfig().setMulticastTimeoutSeconds(200);

        HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
        System.out.println("Members: "+hazelInst.getCluster().getMembers().size());
Run Code Online (Sandbox Code Playgroud)

更新1,考虑到asimarslan的答案

如果我偶然发现MulticastTimeout,我要么得到"Members: 1"或者

2013年12月5日下午8:50:42 com.hazelcast.nio.ReadHandler警告:[192.168.0.9]:4446 [dev] hz._hzInstance_1_dev.IO.thread-in-0关闭套接字到端点地址[192.168.0.7] :4446,原因:java.io.EOFException:远程套接字已关闭!2013年12月5日下午8:57:24 com.hazelcast.instance.Node严重:[192.168.0.9]:4446 [dev]无法加入群集,关闭!com.hazelcast.core.HazelcastException:300秒内无法加入!


更新2,采取pveentjer关于使用tcp/ip的答案

如果我将配置更改为以下内容,我仍然只能获得1个成员:

Config cfg = new Config();                  
NetworkConfig network = cfg.getNetworkConfig();
network.setPort(PORT_NUMBER);

JoinConfig join = network.getJoin();

join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().addMember("192.168.0.1").addMember("192.168.0.2").
addMember("192.168.0.3").addMember("192.168.0.4").
addMember("192.168.0.5").addMember("192.168.0.6").
addMember("192.168.0.7").addMember("192.168.0.8").
addMember("192.168.0.9").addMember("192.168.0.10").
addMember("192.168.0.11").setRequiredMember(null).setEnabled(true);

//this sets the allowed connections to the cluster? necessary for …
Run Code Online (Sandbox Code Playgroud)

java configuration multicast hazelcast

22
推荐指数
2
解决办法
3万
查看次数

通过互联网UDP多播?

我不确定如何最好地解决我的问题.我有一个服务,在远程机器上运行接收和处理UDP数据包.我希望服务能够将这些数据包重新发送给碰巧想要它们的任何人(可能没有人,通常是一台机器,但可能更多)

我认为UDP多播是理想的 - 服务可以发送到多播组,无论有多少接收者已注册,或者即使没有.

但是,我希望能够通过互联网访问它,从我收集的内容来看,这是近乎不可能的UDP多播.我可能会用另一种方法来实现这个目标吗?

如果相关,我的客户端和服务都是用C#编写的.

c# udp multicast

21
推荐指数
2
解决办法
2万
查看次数