jjzjj

Multicast

全部标签

c++ - 为什么 ZeroMQ PGM 多播没有收到多播消息? ( C++, Windows )

环境设置:-多播发送和接收应用程序都在同一台机器上运行我正在将ZeroMQ多播与OpenPGM支持集成,但在我的示例代码下方遇到问题。即“未收到多播消息”在接收器应用程序中。如果我做错了,请纠正我。也无法找到关于ZeroMQPGM多播要求的适当示例。//ZMQ_pgm_receive.cpp:////Headers#include"stdafx.h"#include"zmq.h"#include#includestd::stringfullurl="pgm://eth0;239.255.0.1:30001";staticintroundtrip_count=50;staticsize_

windows - 无法从 Windows ping 到多播地址

在我的计算机上,当我尝试ping一个多播地址时,它们都没有返回响应。另一方面,我知道有一个Unix服务器确实可以ping到这些地址。有没有办法添加一条从我的计算机到这台计算机的路由,以便我可以使用这些地址? 最佳答案 不,ICMP通常不与多播一起使用,因为它是DoS放大的主要来源。类似地,多播也不太有用,因为您需要启用多播并配置路由器才能跨LAN网段。如果您想使用多播ping来发现本地机器,请参阅此答案:MulticastPing(Windows) 关于windows-无法从Window

windows - 无法绑定(bind)到多播地址 (Windows)

我正在尝试编写一个使用Windows套接字监听多个多播组的应用程序。我遇到的问题是,当我去绑定(bind)套接字时,如果我尝试绑定(bind)到多播组地址和端口,则会失败并返回WSAEADDRNOTAVAIL。如果我改为绑定(bind)到INADDR_ANY和端口,那么我仍然可以接收发往同一端口的其他不相关流量。当我在Linux中实现同样的东西时,我没有遇到任何绑定(bind)到多播地址的问题(事实上,我看到它推荐了几个地方以避免端口获得不相关的流量)。这只是不适用于Windows套接字吗?我假设我可以通过使用WSARecvFrom并查看header来自行过滤流量,但如果存在的话,我宁

c - 如何多播(发送)到第一个网卡?

我最近发现,如果我有一个拨号连接(这是用于信息亭)和一个局域网连接,当拨号连接建立时(通过互联网访问),我的多播sendto将默认为拨号而不是我的LANNIC。这使得多播发送到拨号连接,而不是发送到我有多个多播订阅者的LAN。我知道我需要使用IP_MULTICAST_IF来设置我的多播套接字上的接口(interface)。问题是如何枚举接口(interface)以及如何在setsockopt中使用IP_MULTICAST_IF?在WindowsXPEmbedded信息亭上,始终只有一个本地连接NIC。我如何获得此接口(interface)并将其IP地址(这是IP_MULTICAST_I

c# - 有没有办法让多个程序在windows上订阅同一个多播组?

我有两个应用程序需要订阅同一个多播组/端口组合。目前,我能处理这个问题的唯一方法是构建一个订阅多播组的代理应用程序,并通过单独的TCP连接将接收到的流量转发到每个应用程序。我想摆脱代理应用程序并让每个应用程序自己订阅多播组,但我收到套接字异常“通常只允许每个套接字地址使用一次”。有什么办法解决这个问题吗?为什么每台计算机只允许订阅一个给定的多播组? 最佳答案 不完全确定它是否被允许,但在这里寻找可能的解决方案:SendingandreceivingUDPpacketsbetweentwoprogramsonthesamecomput

c# - 在运行时为接口(interface)创建类,在 C# 中

我正在考虑获取一组对象,假设目前有3个对象存在,它们都实现了一个公共(public)接口(interface),然后将这些对象包装在第四个对象中,也实现了相同的接口(interface)。第四个对象的方法和属性的实现将简单地调用这3个底层对象的相关位。我知道这里会有这样做没有意义的情况,但这是针对服务多播架构的,因此已经存在一系列很好的限制。我的问题是从哪里开始。第四个对象的生成应该在运行时在内存中完成,所以我在考虑Reflection.Emit,不幸的是我没有足够的经验甚至不知道从哪里开始。我是否必须构建内存中程序集?它确实看起来是这样,但我只是想要一个快速指向我应该从哪里开始的指针

c# - 在 .NET 中指定 UDP 多播应该转到的网络接口(interface)

在一台同时具有事件无线网卡和LAN端口并通过交叉电缆连接到另一台运行相同应用程序的计算机的计算机上,我们需要通过LAN线向另一台计算机发送UDP多播。使用C#套接字,Windows似乎每次都尝试通过WLAN适配器路由消息。有没有办法指定在哪个网络接口(interface)上发送UDP多播? 最佳答案 正如Nikolai回答的附录:KB318911的问题是一个肮脏的把戏,用户必须提供必要的适配器索引。在寻找如何检索此适配器索引时,我想出了这样的方法:NetworkInterface[]nics=NetworkInterface.Get

c# - 使用 Socket 或 UdpClient 进行多播有什么功能上的区别吗?

我正在熟悉多播等。使用了2个主要示例:使用Socket和Bind()UDPClient.JoinMulticastNetwork()一个指定LeaveMulticastGroup和另一个bindingandJoiningwithnoLeaveMulticastGroup()Multicasting的2种方式有什么区别,哪个更好用? 最佳答案 区别在于使用UdpClient之间的抽象级别。使用sockets在较低级别上分类和管理您的多播和multicastoption.如果您使用UdpClient,那么您无需担心套接字和多播选项,因为

Ubuntu ip报错解决方案 ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000

之前虚拟机ssh连接没问题,今天竟然连不上了。打开虚拟机ipa网卡ens33没有iproot@ubuntu:~/Desktop#ipa1:lo:mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000  link/loopback00:00:00:00:00:00brd00:00:00:00:00:00  inet127.0.0.1/8scopehostlo    valid_lftforeverpreferred_lftforever  inet6::1/128scopehost     valid_lftforeverpreferred_lf

Java UDP多播,判断哪个组发包

我正在开发一个应用程序,其中有一个特定的线程(MulticastListenerThread),它有一个MulticastSocket并且正在监听发送到套接字正在监听的多播组的UDP(数据报)数据包。这行得通。我可以加入多播组,向该组发送消息并通过MulticastSocket接收消息。但是,我想从接收者的角度确定他是从哪个多播组接收到数据包的。下面的代码给出了数据包发起者的地址,而不是多播组:DatagramPacketpacket=newDatagramPacket(buf,buf.length);mlcSenderSocket.receive(packet);Stringsrc_