目前我正在寻找一种将 boost::asio::ip::address_v4()
转换为 字符串
的方法。有办法做到这一点吗?该方法来自 boost website 上的 ipv4_header.hpp
更新:我尝试过boost::asio::ip::address_v4::to_string(ipv4_hdr.source_address())
,但没有成功
最佳答案
address_v4
有一个成员函数 to_string .
您调用的函数 boost::asio::ip::address_v4 source_address() const
按值返回一个 address_v4
对象。非静态成员函数必须在对象上调用,因此,您可以在函数返回的对象上调用 to_string()
:ipv4_hdr.source_address().to_string();
。另请注意,成员函数被标记为 const,它允许您在常量对象上调用它。
该错误有两个原因:
to_string()
有两个重载。一个接受零个参数,另一个接受boost::system::error_code
引用。您试图将address_v4
对象作为参数传递给to_string()
,这是不正确的(不存在此类重载)。语法
boost::asio::ip::address_v4::to_string(...)
仅当to_string()
是静态时才有效成员函数。由于to_string()
是一个非静态成员函数,因此您需要.
点运算符来调用对象实例上的成员函数,即.to_string()
.
关于c++ - 将 boost::asio::ip::address_v4 隐藏为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17423423/