Нет метки времени, к которой у вас есть готовый доступ, которая гарантирует, что метка времени получателя будет больше, чем метка времени отправителя. Единственными часами, которые производят значения, которые можно осмысленно сравнить между компьютерами, являются system_clock
, и это «системное время», то есть то, что ваш компьютер отображает как текущее время; они не должны быть синхронизированы. Тебе нужно быть умнее.
C ++ 20 предложит tai_clock
, utc_clock
и gps_clock
, один из которых может удовлетворить ваши потребности (но плохая синхронизация может привести к отрицательной разнице во времени!).
Возможный подход: машина 1 отправляет машине 2 пакет с отметкой времени std::chrono::high_resolution_clock
. Машина 2 отправляет его обратно. Машина 1 получает возвращенный пакет и сравнивает полученную метку времени с std::chrono::high_resolution_clock::now()
, а затем делит на 2.