asio是C++的准标准网络库,并且C++20标准库的网络部分将基于ASIO,需引入头文件#include <boost/asio.hpp>
。
boost定义了表示ip地址的类型,支持ipv4和ipv6,提供ip::address
和ip::address_v4
以及ip::address_v6
三种类型。
#include <boost/asio.hpp>
namespace ba = boost::asio;
namespace bi = ba::ip;
int main(int argc, char* argv[])
{
// 通过点分十进制转换为ipv4地址
bi::address addrV4 = bi::make_address("127.0.0.1");
assert(addrV4.is_v4());
// 通过十六进制转换为ipv6地址
bi::address addrV6 = bi::make_address("ABCD:EF01:2345:6789:ABCD:EF01:2345:6789");
assert(addrV6.is_v6());
// bi::address重载了流操作符,可以直接输出(所以也可以用boost::lexical_cast<string>(address))
std::cout << addrV4 << std::endl;
std::cout << addrV6 << std::endl;
return 0;
}
原文:https://www.cnblogs.com/HachikoT/p/13795967.html