2

目前我正在寻找一种将 a 转换boost::asio::ip::address_v4()string. 有没有办法做到这一点?方法来自boost网站上的ipv4_header.hpp

更新:我试过了boost::asio::ip::address_v4::to_string(ipv4_hdr.source_address()),但我不成功

4

2 回答 2

3

address_v4有一个成员函数to_string

您调用的函数按值boost::asio::ip::address_v4 source_address() const返回一个address_v4对象。非静态成员函数必须在对象上调用,因此,您可以调用to_string()从函数返回的对象:ipv4_hdr.source_address().to_string();. 还要注意成员函数被标记const,它允许你在常量对象上调用它。

错误有两个原因:

  1. to_string()有两个重载。一个接受零参数,另一个接受boost::system::error_code引用。您试图将address_v4对象作为参数传递给to_string(),这是不正确的(不存在此类重载)。

  2. 该语法boost::asio::ip::address_v4::to_string(...)仅在to_string()是静态成员函数时才有效。由于to_string()是非静态成员函数,因此您需要.点运算符来调用对象实例上的成员函数,即.to_string().

于 2013-07-02T11:16:06.850 回答
0

这有效。

unsigned long ip_lb;
...
ip::address peerIp = ip::address_v4(ip_lb)
cout << peerIp.to_string
于 2019-01-16T05:34:31.650 回答