我想找到一個單獨的asio :: buffer類型/構造函數,可以通過asynch_send_to
發送std::string
和std::vector
對象。asio ::用於發送std :: vector和std :: string的緩衝區類型
請注意,我使用獨立 asio,沒有提升!
現在,我用來發送數據的功能是:
void UdpSocket::send_datagram(asio::const_buffer buffer) {
mSocket.async_send_to(buffer, mEndpoint,
[this, datagram](const asio::error_code& error, std::size_t bytes_transferred) {
if (!error) {
// stuff...
}
else{
// other stuff..
}
});
}
我希望能夠爲使用:
std::vector mVector;
send_datagram(asio::buffer(mVector.data(), mVector.size());
或
std::string mString = "hello world";
send_datagram(asio::buffer(mString.data(), mString.length());
以上給出了buffer_sequence_adapter.hpp
中的一系列錯誤:
- '爲const_iterator':不是 'ASIO :: const_buffer'
- '開始' 的成員:不是 'ASIO :: const_buffer' 的構件
- '結束':不是的成員「ASIO :: const_buffer」
- 「ITER」:未聲明的標識符
我有點由緩衝器的絕對數量和它們之間的兼容性淹沒;有人可以幫我理清什麼是正確類型的緩衝區/構造函數,可以使用std::vector
和std::string
類型嗎?
謝謝!
你錯過的std ::向量初始化模板參數?並在代碼編譯器錯誤的地方指向? –