[英]Retrieving Bytes data from boost::asio: array
我正在嘗試使用 Bytes 數據從 boost 數組中檢索數據,該數據最終應為 2 雙倍。 我不知道為什么,但我無法將緩沖區轉換為可讀格式,這是我的嘗試:
boost::array<void*, 1024> arr;
boost::system::error_code error_2;
socket_2.read_some(boost::asio::buffer(arr), error_2);
for (int k = 0; k < 32; k++) { std::cout << arr[k]; }
我不明白如何從 arr 中檢索數據,例如不接受 memcpy。
實際上,無論你做什么都相當於 memcpy。 但是你可以讓事情變得更優雅:
boost::array<double, 4096 / sizeof(double)> arr;
boost::system::error_code ec;
size_t n = s.read_some(asio::buffer(arr), ec);
for (size_t i = 0; i < (n / sizeof(double)); ++i) {
std::cout << arr[i];
}
如果您已經有原始緩沖區,請考慮asio::buffer_cast<>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.