草庐IT

windows - Windows 7 上的多播套接字

此代码在Linux和WindowsXP上运行良好,但它总是无法在Windows764位和WindowsServer2008上添加多播成员。usesClasses,Sockets,{$IFDEFMSWINDOWS}Windows,Winsock,{$ELSE}BaseUnix,UnixType,{$ENDIF}Sysutils;typeTIP_mreq=packedrecordimr_multiaddr:in_addr;//IPmulticastaddressofgroupimr_interface:in_addr;//localIPaddressofinterfaceend;varAS

windows - 监听 UDP 多播数据包

我的AutoIt脚本应该接收发送到239.255.250.250:9131的UDP多播数据包.但它不起作用,我看不到指定UDPmulticastaddress的选项对于UDPBind().UDPBind()在下面的代码中返回error10049(invalidaddress):UDPStartup()UDPBind("239.255.250.250",9131)While1$msg=UDPRecv($recv,512)If$msg""ThenConsoleWrite($msg)EndIfSleep(100)WEnd如何监听UDP多播包? 最佳答案

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# - 如何在 c# 中跨本地网络进行 UDP 多播?

我正在尝试在我的本地网络上进行一些简单的UDP通信。我想做的就是对网络上的所有机器进行多播这是我的发送代码publicvoidSendMessage(stringmessage){vardata=Encoding.Default.GetBytes(message);using(varudpClient=newUdpClient(AddressFamily.InterNetwork)){varaddress=IPAddress.Parse("224.100.0.1");varipEndPoint=newIPEndPoint(address,8088);udpClient.JoinMult

c# - 使用多播委托(delegate)链接函数

我的问题在以下代码中有详细说明-我问这个的原因是我正在试验委托(delegate)​​://createthedelegatedelegateintdel(intx);classProgram{staticvoidMain(string[]args){Programp;p=newProgram();deld=p.a;d+=p.b;d+=p.c;d+=p.d;d+=p.e;Console.WriteLine(d(10));//返回16....所有函数都会触发,因为各种消息“aiscalled”等都打印到console但只返回从最后一个函数e返回的金额-我在后台假设它们被返回但随后被覆盖?

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

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