我试图通过使用Boost:asio库进行一些网络编程来感受我的方式.我一直在使用异步处理程序从给定的地址传输数据,当我利用asio作为函数时,它工作正常:
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver( io_service);
boost::asio::ip::tcp::socket sock( io_service);
boost::array < char, 4096 > buffer;
void read_handler( const boost:: system:: error_code &ec,
std:: size_t bytes_transferred)
{
if (! ec)
{
if (std::string(buffer.data(), bytes_transferred) == "$")
{
myss.str(std::string());
}
myss << std::string(buffer.data(), bytes_transferred);
if (int(buffer.data()[0]) == 10)
{
....
}
std::cout << std::string(buffer.data(), bytes_transferred) ;//<< std::endl;
sock.async_read_some( boost::asio::buffer( buffer), read_handler);
}
}
void connect_handler( const boost::system::error_code &ec)
{
if (! ec)
{
boost::asio::write( sock, boost::asio::buffer(
"GET / HTTP 1.1\r\nHost: www.google.com\r\n\r\n"));
sock.async_read_some( …Run Code Online (Sandbox Code Playgroud)