Boost.Asio 在尝试加入多播组时引发'No such device'异常
Boost.Asio throws 'No such device' exception when trying to join multicast group
以下代码抛出异常"No such device"
,尝试加入多播组(set_option
呼叫)时。
#include <boost/asio.hpp>
int main(){
const std::string recv_addr = "232.4.130.147";
const int recv_port = 31338;
boost::asio::io_service io_service;
boost::asio::ip::udp::endpoint recv_endpoint(
boost::asio::ip::address::from_string(recv_addr),
recv_port);
boost::asio::ip::udp::socket recv_sock(io_service, recv_endpoint);
recv_sock.set_option(
boost::asio::ip::multicast::join_group(
boost::asio::ip::address::from_string(recv_addr).to_v4()
));
}
无论网络管理器是否正在运行,都会发生这种情况。并且不考虑IP地址设置。
当我使用手动设置的IP地址连接到内部网络时,会出现此问题。在另一个网络上,从DHCP获取IP时,我观察到没有问题。
我一直eth0
接口,这是唯一活跃的非本地接口。
我尝试指定此处所示的侦听接口,但我"Invalid argument"
得到了一个异常,并且 Boost.Asio 文档没有说明有关设置接口的任何内容。
由于没有DHCP工作,因此没有多播路由。
用:
route add -net 224.0.0.0/4 dev eth0
相关文章:
- "error: no matching function for call to"构造函数错误
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 调用专用模板时出错"no matching function for call to [...]"
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 如何修复链表类实现的未处理异常0xDDDDDDDD
- 关于:C++中异常对象的范围:为什么我没有得到副本?
- 是什么导致了Unity 3D中的"错误线程异常"?
- 如何将strftime中的格式错误作为异常捕获
- 创建具有 new in 函数和"this is nullptr"异常的对象
- mysql c ++连接器异常:用户"root"@'localhost'的访问被拒绝(使用密码:NO)&&MySQL服务器已消失
- 线程中的异常 "main" java.lang.UnsatisfiedLinkError: no JNTIest in java.library.path
- Boost.Asio 在尝试加入多播组时引发'No such device'异常