初始化 asio::ip::address_v6() 的最快方法

Quickest way to initialize asio::ip::address_v6()?

本文关键字:方法 v6 asio ip address 初始化      更新时间:2023-10-16
asio::ip::address_v6

参数进行bytes_type,该参数基本上是网络字节顺序的boost::array

我在void *变量中有一个 RAW IPv6 地址。将void *变成asio::ip::address_v6的最快方法是什么?最好使用构造函数。

没有比初始化一个asio::ip::address_v6::bytes_type更好的了,它实际上可以是std::arrayboost::array

// We need an unsigned char* pointer to the IP address
unsigned char *youraddr = reinterpret_cast<unsigned char*>(your_void_ptr);
asio::ip::address_v6::bytes_type myaddr;
// Copy the address into our array
std::copy(youraddr, youraddr + myaddr.size(), myaddr.data());
// Finally, initialize.
asio::ip::address_v6 ipv6(myaddr);
请注意,如果您

能够修改该结构,那么最好直接存储bytes_type而不是该void*,显然。