|
|
1
4
我假设这是recv方面。。。从表面上看,多播套接字设置看起来不错。你说它在模拟器上工作,但不是在真实的网络上,对吗?存在一个问题,您的网络设备,特别是任何路由器,可能还有其他设备,可能需要明确设置以允许广播和/或多播数据包的转发。默认情况下,这些类型的数据包通常在网络边缘丢弃。这是另一个远射-如果您在同一台机器上运行发送方和接收方,并关闭IP_MULTICAST_LOOP,那么您将不会得到任何数据包,因为它禁用了MULTICAST loopback接口。这就是我所能想到的,没有更多关于你的设置的信息和/或看到更多的代码。 |
|
|
2
1
我需要将INADDR\U ANY更改为广播IP。。。
|
|
|
3
0
我在我的电脑上测试时遇到了类似的问题,通过Tcppreplay,Wireshark在另外两台电脑的a和B之间记录了一些数据交换。因此,我采用这种方式改编旧记录:
然后
但是我的应用程序recv()失败了。 这个问题可能与tcpreplay的环回限制有关,因此我决定在通过tcprewrite用新的IP重新生成合适的记录文件后,将数据从PC重新发送到PC。此时,tcpdump在我的接收端显示了例外情况,但程序recv()总是失败。 最后我发现原因是旧的MAC地址和两台电脑之间的路由器:
|
|
|
doguico · 如何在swift中实现多播套接字? 8 年前 |
|
|
Shir · 通过特定网络接口发送IPv6多播数据包 8 年前 |
|
|
AndroidX · 使用INADDR_ANY的目的和结果是什么? 9 年前 |
|
|
akinKaplanoglu · Apache骆驼路由多播不会复制交换消息 11 年前 |
|
|
Bernd Jacobi · 如何在所有连接的网络上发送UDP多播? 12 年前 |
|
|
Sundae · 如何在NIO.2中实现多播客户端? 12 年前 |
|
|
Afonso Tsukamoto · 正在将本地UDP服务器信息获取到c中++ 13 年前 |