我在busybox(内核3.0.35 ARM)上运行了c++应用程序,它监听多播数据包。一切似乎都很好,直到我发现如果我在拔掉网络电缆的情况下启动应用程序,然后再将其插入,它将不会收到多播数据包。我不知道为什么。没有错误,所有设置操作(bind,setsockopt,...)都成功完成,ip maddr 也显示正确的信息。只有 select() 不会报告任何传入数据。如果链接未启动,内核是否会有所不同?
有趣的是,同一个应用程序也在不同的地址上发送多播数据包,这似乎不受链接状态的影响,一旦我插入电缆,它就会愉快地传输。
有任何想法吗?
谢谢,汤姆