C# 从Win7 Pro和Ultimate发送多播数据包

C# 从Win7 Pro和Ultimate发送多播数据包,c#,multicast,udpclient,C#,Multicast,Udpclient,我有两个开发平台,一个运行Windows7Ultimate(笔记本电脑),一个运行Windows7Professional(台式机)。我刚刚检查了我的桌面上的代码,该代码在我的笔记本电脑上运行得很好,可以通过多播发送udp数据包(见下文),它在我的Win7 Ultimate计算机上运行得很好,也可以在win2k3服务器和windows xp机器上进行测试,但在我的Win7 Pro机器上,我得到以下SocketException“无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满” wi

我有两个开发平台,一个运行Windows7Ultimate(笔记本电脑),一个运行Windows7Professional(台式机)。我刚刚检查了我的桌面上的代码,该代码在我的笔记本电脑上运行得很好,可以通过多播发送udp数据包(见下文),它在我的Win7 Ultimate计算机上运行得很好,也可以在win2k3服务器和windows xp机器上进行测试,但在我的Win7 Pro机器上,我得到以下SocketException“无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满”

windows 7 Pro不允许您发送多播数据包吗?或者我只是遗漏了什么

var socket = new UdpClient("239.7.23.1", 6567);
var testBuf = new byte[] {12, 24};
socket.Send(testBuf, 2);

更新:我忘了提到我禁用了所有防火墙,驱动程序是Intel提供的驱动程序,在检查设备的高级属性时,我验证了接收和传输缓冲区都设置为2048,并且我使用2到256字节的有效负载尝试了上述测试代码,所有测试代码都有相同的错误。

有很多错误这是可能的,所以虽然我没有一个具体的答案,也许它至少会帮助解决问题

首先,代码应该适用于两个系统

您桌面上的NIC是否可能更便宜/更低端,并且没有为NIC队列分配足够的缓冲区?这通常是NIC型号特有的功能(有点像获得具有X个二级缓存量的PC-不同型号具有不同的缓存缓冲区)。缓冲区分配中的驱动程序差异如何?您使用的是manuf驱动程序还是microsoft驱动程序?请尝试不同的驱动程序和/或将其更新为最新的manuf驱动程序,而不是microsoft版本(如果您使用的是microsoft版本)


您是否验证了防火墙在这两个系统上都被禁用,并且windows防火墙在每个系统上的设置没有差异。它们在不同的路由器上吗?如果是,是否可能在一个路由器上禁用了多播,而在另一个路由器上则没有?可能是很多因素导致了这一问题。HTH。

e所有好的建议-我更新了我的问题,包括防火墙已禁用,设备上的发送/接收缓冲区为2048字节,因此这应该不是问题。是否可能此NIC无法支持多播?我认为这是在windows的IP堆栈中处理的?结果是新计算机中的NIC不支持多播cast-不知道nic会阻止多播工作。