我想找到一个单独的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 ::向量初始化模板参数?并在代码编译器错误的地方指向? –