发送多播数据包从Win7 Pro vs Ultimate
本文关键字:Pro vs Ultimate Win7 多播 数据包 | 更新日期: 2023-09-27 17:53:07
我有两个开发设备,一个运行windows 7 Ultimate(笔记本电脑),一个运行windows 7 Professional(台式机)。我刚刚看了代码在我的桌面工作完全在我的笔记本电脑发送udp数据包在多播(下图),它作用于我这个终极电脑很好,以及win2k3服务器,和windows xp机器,我可以测试它,但在我这个职业我得到以下SocketException插座上的"一个操作系统无法执行,因为缺乏足够的缓冲空间或因为队列已满"
windows 7 Pro不允许发送组播数据包?还是我错过了什么?
var socket = new UdpClient("239.7.23.1", 6567);
var testBuf = new byte[] {12, 24};
socket.Send(testBuf, 2);
更新:我忘了说我禁用了所有防火墙,驱动程序是英特尔提供的驱动程序,并且在通过设备的高级属性时,我验证了接收和发送缓冲区都设置为2048,并且我已经尝试了上述测试代码,具有2到256字节的有效负载,所有的错误都相同。
有很多可能性,所以虽然我没有一个具体的答案,但也许它至少会帮助解决这个问题。
首先,代码应该适用于两个系统。是否有可能,你的网卡在你的桌面上是更便宜/低端,没有那么多的缓冲区分配给它的NIC队列?这通常是特定于网卡型号的功能(有点像获得一台具有X级二级缓存的PC -不同型号有不同的缓存缓冲区)。缓冲区分配中的驱动程序差异如何?你用的是厂商驱动还是微软驱动?尝试不同的驱动程序和/或更新到最新的制造商驱动程序,而不是微软的版本,如果你正在使用。
您是否验证两个系统上的防火墙都被禁用,并且每个系统上的windows防火墙设置是否不同?它们在不同的路由器上吗?如果是这样,是否有可能在一个路由器上禁用多播,而不是另一个?可能是很多因素导致的所以可能有很多因素导致这个问题。HTH .