クライアントからサーバーへのソケット書き込みにかかる合計時間を測定するには、次のコードを使用します。 (コールバックメソッド呼び出しが宛先ソケットへのデータの正常な書き込み(TCP-ACKが受信された)で行われたと仮定します)これにより、データ転送の実際の「ネットワーク時間」が保証されますか?ブースト:ソケットの読み込み/書き込みにかかる時間(秒)
void on_successful_read_from_client(const boost::system::error_code& error,
const size_t& bytes_transferred)
{
if (!error)
{
m_telnet_server_write_time = posix_time::microsec_clock::universal_time();
async_write(telnet_server,
boost::asio::buffer(data_from_device_,bytes_transferred),
boost::bind(&bridge::on_successful_send_to_server,
shared_from_this(),
boost::asio::placeholders::error));
}
else
close();
}
void on_successful_send_to_server(const boost::system::error_code& error)
{
if (!error)
{
posix_time::ptime now = posix_time::microsec_clock::universal_time();
if ((now - m_telnet_server_write_time).total_milliseconds() > 0)
{
std::ostringstream log;
log << "Time Taken for server write: " << (now - m_telnet_server_write_time).total_milliseconds() << " ms";
write_log(log.str());
}