标签: multicast

发送广播数据报

我需要向连接到我的网络的所有机器(服务器)发送广播数据报.

我正在使用NodeJS Multicast

客户

var dgram = require('dgram');
var message = new Buffer("Some bytes");
var client = dgram.createSocket("udp4");
client.send(message, 0, message.length, 41234, "localhost");
// If I'm in the same machine 'localhost' works
// I need to do something 192.168.0.255 or 255.255.255
client.close();
Run Code Online (Sandbox Code Playgroud)

服务器

 var dgram = require("dgram");

 var server = dgram.createSocket("udp4");

 server.on("message", function (msg, rinfo) {
   console.log("server got: " + msg + " from " +
     rinfo.address + ":" + rinfo.port);
 });

 server.on("listening", function () {
   var address = server.address(); …
Run Code Online (Sandbox Code Playgroud)

javascript udp multicast broadcast node.js

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

如何在Unix上使用TCPDump查看发送到特定多播地址的消息?

我正在尝试查看传输到网络上特定多播地址的流量,以便分析我们正在使用的协议.

我没有在设置上使用Wireshark(不幸的是).TCPDump虽然可用.那么,任何人都可以告诉我一个命令有TCPDump过滤器只能查看传输到一个多播组播组地址的消息吗?

networking multicast tcpdump

18
推荐指数
1
解决办法
5万
查看次数

Wireshark:在GUI中通过多播过滤

使用Wireshark GUI中的Wireshark"过滤器"字段,我想过滤捕获结果,以便只显示多播数据包.

我看过这篇文章,但这对GUI过滤器字段不起作用.这Wireshark的页面显示如何筛选出组播,而不是如何过滤一切,但组播.

有谁知道这样做的简单陈述?

先感谢您!

filtering multicast wireshark

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

Erlang组播

你如何在Erlang中使用gen_udp进行多播?我知道它在代码中,它背后没有文档.发送数据显而易见且简单.我想知道如何添加会员资格.不仅在启动时添加成员资格,而且在运行时添加成员资格也很有用.

erlang networking multicast

16
推荐指数
2
解决办法
4835
查看次数

什么是可靠多播的最有效协议?

当发送者需要通过以太网以可靠的方式将相对大量的数据(比如几兆字节每秒)多播到同一子网上的适量接收器(比如少于十几个)时,最有效的协议是什么?通过可靠,我的意思是,如果数据包丢失,协议确保重新发送,以便任何接收器都不会丢失数据." 高效"这个术语要定义起来要困难得多,但是假设我们希望通过两端适度的CPU使用来最大化吞吐量并最小化网络带宽.这仍然不是一个明确的定义,但它是我能想到的最好的.面向流或面向消息的协议都是可以接受的.

我很欣赏现实世界的例子,我很乐意接受主观的答案,即你最喜欢的多播协议是什么,如果你能解释它的优点和缺点.

ethernet protocols multicast file-transfer reliable-multicast

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

Android 2.2上的多播

有没有人在Android 2.2上使用Multicast,特别是用于Bonjour服务检测的JmDNS.Android 1.5-> 2.0时间帧有很多问题和答案,包括stackOverflow,表明不同程度的成功,以及错误跟踪器中的错误,表明它已修复并关闭,为2.2(http://代码.google.com/p/android/issues/detail?id = 2323).我已经尝试了"TuneControl"源代码,但是这个工作在~1.5并且还没有更新,并且在2.2上对我不起作用.

那么,问题...... 1)有没有看到2.2上的多播工作,特别是JmDNS,特别是Bonjour服务检测?

2)代码中有什么必要使这项工作?

我正在使用适当的权限:

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Run Code Online (Sandbox Code Playgroud)

我获得了多播锁:

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
if(wifi != null)
{
    MulticastLock mcLock = wifi.createMulticastLock("mylock");
    mcLock.acquire();
...
Run Code Online (Sandbox Code Playgroud)

然后尝试启动jmDNS以查找服务器:

    mdns = JmDNS.create(addr, HOSTNAME);
    jmdns.addServiceListener(TOUCH_ABLE_TYPE, listener);
    jmdns.addServiceListener(DACP_TYPE, listener);
    ...
Run Code Online (Sandbox Code Playgroud)

听众永远不会看到任何服务.我已经使用Wireshark验证了请求数据包是否已发送,服务器是否响应,但jmDNS库中的套接字侦听器代码从未看到响应数据包.

所以...我错过了什么?这仍然是一个错误吗?有没有人得到任何东西甚至远程像这样工作???

android multicast jmdns

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

骆驼发送到多个端点

这两者有何不同?

from(endpoint).to(endpoint:a, endpoint:b)

from(endpoint).multicast().to(endpoint:a, endpoint:b)
Run Code Online (Sandbox Code Playgroud)

找不到第一个的任何文档

multicast apache-camel

15
推荐指数
2
解决办法
7032
查看次数

C - 选择UDP /组播套接字的接口

我试图修改多播侦听器/发送器示例以将UDP /多播套接字绑定到特定接口而不使用INADDR_ANY宏.

我拥有接口的IPv4地址.我尝试了以下内容,但套接字没有收到任何UDP(单播,广播,多播)数据包.

struct sockaddr_in addr;
int fd, nbytes;
socklen_t  addrlen;
struct ip_mreq mreq;

// my_ipv4Addr equals current IP as String, e.g. "89.89.89.89"

// create what looks like an ordinary UDP socket */
if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
    perror("socket");
    exit(1);
}

// set up addresses
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
// [-]    addr.sin_addr.s_addr = htonl(INADDR_ANY); 
addr.sin_addr.s_addr = inet_addr(my_ipv4Addr); 
addr.sin_port = htons(port);

// bind socket
if (bind(fd, (struct sockaddr *) &addr, …
Run Code Online (Sandbox Code Playgroud)

c sockets udp interface multicast

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

Android中的热点/绑定模式下的多播支持

我有一个原型Android应用程序正在侦听多播数据包以"发现"客户端进行通信.套接字设置类似于:

InetAddress group = InetAddress.getByName("228.1.2.3");
MulticastSocket s = new MulticastSocket(4000);
s.joinGroup(group);
Run Code Online (Sandbox Code Playgroud)

当所有设备通过WiFi连接时,这非常有效.我想用手机充当便携式热点来支持这一点.但是,虽然我的所有设备似乎都正确连接到热点,但我不再收到组播数据.我想知道是否存在禁止在热点模式下进行此类通信的限制,或者是否需要任何其他网络配置才能启用此功能?我在运行Gingerbread和Froyo的几个不同的设备上试过这个没有运气.

android multicast wifi android-wifi

14
推荐指数
1
解决办法
4768
查看次数

Docker接收多播流量

我们有一个dockerized服务器应用程序,它通过在端口6969上侦听多播数据包来自动发现网络上的物理设备.所以我们需要我们的docker容器能够通过主机从主机外部的设备接收这些数据包,并进入容器.我已经看到了一些 类似的 问题,并做了一个 很大 阅读,但我仍然无法获取服务器对这些组播报文作出回应.

我坐在Wireshark上观看网络流量,但我不是专家.我知道Docker创建了一个MASQUERADE地址,使得流量看起来都像是来自Docker网关,所以当我观看时,veth我看到主要是在谈话之间172.17.0.1,172.17.0.2尽管我的服务器无法检索有关网络设备的任何信息.(如果我在码头工人外面跑,我当然没有问题.)

我不能--net=host像其他人一样使用该--link功能.我尝试了以下变化......

  • docker run --name app -p 6969:6969 -d me/app:latest
  • docker run --name app -p 0.0.0.0:6969:6969 -d me/app:latest (这个我可以发誓曾经工作一次,但现在不行?)
  • docker run --name app -p 0.0.0.0:6969:6969/udp -d me/app:latest
  • docker run --name app -p 255.255.255.255:6969:6969 -d me/app:latest

您可以提供的任何帮助或见解将不胜感激.

networking multicast wireshark docker

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