目前我正在寻找一种将 a 转换boost::asio::ip::address_v4()
为string
. 有没有办法做到这一点?方法来自boost网站上的ipv4_header.hpp
更新:我试过了boost::asio::ip::address_v4::to_string(ipv4_hdr.source_address())
,但我不成功
目前我正在寻找一种将 a 转换boost::asio::ip::address_v4()
为string
. 有没有办法做到这一点?方法来自boost网站上的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()
.
这有效。
unsigned long ip_lb;
...
ip::address peerIp = ip::address_v4(ip_lb)
cout << peerIp.to_string