如何使用Boost :: Asio发送std :: vector <char>?

6 c++ boost-asio

我一直在努力实现这一目标,我真诚地赞美任何帮助.我的两个应用程序,客户端和服务器都开始抛出"向量下标超出范围"的异常.

如何正确地做这件事?


还在试图解决这个问题,有人吗?

据我所知,我应该创造一个

boost::asio::basic_stream_socket stream; 然后打电话:

stream.send(boost::asio::buffer(data));

我想完全可以异步做到这一点?有什么区别: basic_stream_socket::send()vs. basic_stream_socket::write_some()vs. basic_stream_socket::async_write_some()

basic_stream_socket::receive()vs. baic_stream_socket::read_some()vs. basic_stream_socket::async_read_some()

我假设send()&receive()是,当我想以确保100%的数据发送/接收,我可以调用的方法-阻断插座的代价?

我假设write_some()&read_some()是,当我的数据不能确定是否100%被发送,我可以打电话收到方法/ -但仍要堵塞插座?

我假设async_read_some()&async_write_some()是不阻挡插座的方法和他们的读/写任何他们可以吗?

Jud*_*den 5

假设您创建了一个并尝试发送vector<char> 数据:

stream.send(boost::asio::buffer(data));
Run Code Online (Sandbox Code Playgroud)

请参阅boost:asio :: buffer.