我修改了包含boost的客戶端樣例。如果我在handle_handshake方法中發送我的請求,一切都按預期工作。boost asio ssl - 試圖在連接成功後發送請求
我想要做的是連接到服務器,成功後發送請求或多個請求。如果我試圖在handle_handshake之後發送請求,我在handle_write例程中收到錯誤消息 - 未初始化。
所有來電都被異步使作品的路徑是 呼叫連接 handle_handshake被稱爲 handle_handshake調用寫一條消息到服務器
我作出的唯一的變化是我不叫「的方法發送消息「handle_handshake內部的例程。使用下面的代碼一切正常
-
我的應用程序的工作原理非常類似於聊天的例子中(我不工作與一個execption)。
void handle_handshake(const boost::system::error_code& error)
{
if (!error)
{
std::stringstream request_;
request_ << "GET /api/0/data/ticker.php HTTP/1.1\r\n";
request_ << "Host: mtgox.com\r\n";
request_ << "Accept-Encoding: *\r\n";
request_ << "\r\n";
boost::asio::async_write(socket_,boost::asio::buffer(request_.str())
,boost::bind(&client::handle_write, this, boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
else
{
std::cout << "Handshake failed: " << error.message() << "\n";
}
}
}
我錯過了什麼嗎?我需要能夠在連接後向服務器發出多個請求。