2012-01-18 39 views
7

Có lợi thế về thời gian cần thiết để có được những dữ liệu đệm ra ngoài dây nếu bạn sử dụngboost :: ASIO :: async_write() so với tăng :: ASIO :: write()

boost::asio::write(m_socket, asio::buffer(dataOut_, len), asio::transfer_all()); 

thay vì

boost::asio::async_write(m_socket, boost::asio::buffer(hbs, sizeof(hbs)), 
         boost::bind(&Client::handle_pulse, this, 
         boost::asio::placeholders::error, 
         boost::asio::placeholders::bytes_transferred)); 

Trả lời

2

sự khác biệt lớn là bình thường write có thể chặn đến khi tất cả được viết, trong khi async_write lợi nhuận ngay lập tức và kêu gọi một cuộc gọi lại khi một trong hai tất cả dữ liệu được viết hoặc một lỗi xảy ra.

Tôi nghi ngờ có bất kỳ sự khác biệt đáng chú ý nào trong thời gian từ khi gọi đến dữ liệu thực sự được gửi qua dây.

+0

Cảm ơn, đó là một điều đáng để biết. –

Các vấn đề liên quan