我在使用 SLP(服务定位协议;我试用了 OpenSLP 实现)时遇到了一些问题。它在 239.255.255.253、端口 427 上使用多播。为了缩小问题范围,我决定iperf
先测试多播连接(没有任何与 SLP 相关的东西)。
因此,我在一台计算机上设置了一个服务器,使用
iperf -s -u -B 239.255.255.253 -p 427 -i 1
在另一台电脑上,我尝试使用
iperf -c 239.255.255.253 -p 427 -u -T 32 -t 3 -i 1
但服务器没有收到任何数据。
服务器端的输出为:
bind failed: Cannot assign requested address
------------------------------------------------------------
Server listening on UDP port 427
Binding to local address 239.255.255.253
Joining multicast group 239.255.255.253
Receiving 1470 byte datagrams
UDP buffer size: 64.0 KByte (default)
------------------------------------------------------------
在客户端:
------------------------------------------------------------
Client connecting to 239.255.255.253, UDP port 427
Sending 1470 byte datagrams
Setting multicast TTL to 32
UDP buffer size: 64.0 KByte (default)
------------------------------------------------------------
[ 3] local 152.96.201.188 port 53777 connected with 239.255.255.253 port 427
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 129 KBytes 1.06 Mbits/sec
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec
[ 3] 0.0- 3.0 sec 386 KBytes 1.05 Mbits/sec
[ 3] Sent 269 datagrams
因此问题似乎出在服务器端,因为它无法绑定多播地址。那里可能存在什么问题?我该如何调试它?
顺便说一句,看起来服务器可以成功加入多播组地址。因为当我在没有路由器(只有非托管交换机)的专用网络中尝试相同的命令时,它会显示(此外):
multicast join failed: Invalid argument
两台计算机都运行 Win 7 并连接到公司网络。它们位于同一 VLAN 内(ping 成功)。IT 部门表示此子网中已启用多播。
如能得到有关如何调试此问题的提示我将非常感激!