我正在尝试通过专用网络上的UDP广播,通过WiFi将多声道音频从一台服务器发送到多台客户端计算机.
我使用名为Pure Data的软件,使用名为netsend~和netreceive~的UDP广播工具.代码在这里:http: //www.remu.fr/sound-delta/netsend ~/
简而言之,我能够在点对点网络中向一台客户端计算机发送9个频道,但是当我尝试向2个客户端播放广播时(尚未尝试更多),我得到了没有声音.我可以压缩音频,并通过UDP广播将4个压缩的信道(大约10%未压缩的大小)成功发送到2个客户端.或者我可以通过UDP广播向1个客户端发送1个频道,但有一些故障.
WiFi路由器是Linksys WRT300N.所有计算机都运行Windows XP.IP地址为192.168.1.x,子网掩码为255.255.255.0,子网广播地址为192.168.1.255.
我很好奇 - 路由器中的UDP广播包会发生什么?如果我的子网掩码为255.255.255.0,那么路由器是否会为广播地址发送的每个数据包生成254个数据包?
我的WiFi带宽至少为100Mbps,但我似乎无法通过UDP广播向多个客户端发送超过10Mbps的音频.
是什么阻止我将音频发送到WiFi的带宽限制?
有关套接字代码修改,网络设置,路由器设置,子网修改的任何建议......非常感谢!
谢谢尼克
您的问题是由接入点的速率控制算法引起的.通过单播,接入点跟踪每个特定接收器可以可靠地接收的数据速率,并发送该速率.对于多播,接入点不知道哪些接收器对数据感兴趣,因此简单的接入点以尽可能慢的速率(1Mb/s)发送数据.更好的实现接入点可以以最慢连接的客户端正在使用的速率发送数据,并且最佳接入点使用IGMP监听来查看谁正在接收每个IP多播流,并且他们将从该接收器中选择该流的最慢速率.
最简单的解决方案是在拥有少量WiFi接收器时不使用多播.