目前我正在寻找一种将 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