this question相似,但我想使用Pion进行异步通信。

我想我已经找到了如何异步创建连接的方法:

pion::tcp::connection_ptr connection(new pion::tcp::connection(_io_service));
connection->async_connect(ep,
                          boost::bind(&http_client::after_connect,
                                      this,
                                      connection,
                                      _1));


现在,我想使用pion::http::request发送请求,但是其所有发送方法都处于阻塞状态。如何异步发送?

最佳答案

在Pion中有一个request_writer类。我记得它有一个send()成员函数来异步发送数据。

// create
auto writer = pion::http::request_writer::create(connection);

// set data
writer->write(11);
writer->write(some_buffer, bufer_size);

// send data
writer->send();

09-28 15:14