如何在 Linux 上的 Win7 VM 中使用多播?
Posted
技术标签:
【中文标题】如何在 Linux 上的 Win7 VM 中使用多播?【英文标题】:How can I use multicast in a Win7 VM on Linux? 【发布时间】:2015-10-23 21:44:19 【问题描述】:我在笔记本电脑上使用 Ubuntu 14.04 LTS 来托管 Windows 7 VirtualBox 实例。我想要做的是将笔记本电脑连接到网络(有线或无线),然后在连接到 IPv4 多播的 Windows VM 中运行应用程序。该应用程序是用 Qt 4.8.2 编写的,我在 QtCreator 中运行它。当我运行应用程序时,它无法加入多播组:
QUdpSocket *udpSocket = new QUdpSocket(this);
bResult = udpSocket->bind(port, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint);
bResult = udpSocket->joinMulticastGroup(address);
如果我进入 joinMulticastGroup(),我可以看到 setsockopt() 返回 -1。此代码在本机 Windows 中运行良好。我尝试将 VM 网络连接到 NAT 或将桥接网络连接到 eth0(混杂模式设置为全部允许),但都不起作用。
VirtualBox 是不允许这样做,还是需要在 VM 或 Linux 主机上调整某些设置?
注意:我无法在 Linux 中运行 Qt 应用程序,因为它依赖于仅为 Windows 构建的第三方库。
【问题讨论】:
【参考方案1】:尝试在 Virtualbox 的虚拟机网络适配器上将 Promiscious Mode 设置为“全部允许”。
【讨论】:
【参考方案2】:最后我通过跟进我遇到的 USB 问题意外修复了它 - 感谢 Ramon Suarez 他对 VirtualBox doesn't recognize USB 的回答。
【讨论】:
请不要添加“谢谢”作为答案。相反,请为您认为有帮助的答案投票。 答案是另一个问题,我提供了一个链接。以上是关于如何在 Linux 上的 Win7 VM 中使用多播?的主要内容,如果未能解决你的问题,请参考以下文章