sarath.mk Ответов: 1

Отрицательный промежуток времени между клиентом и сервером для связи через TCP сокет


Отрицательный промежуток времени между клиентом и сервером для связи через TCP-сокет.

Что я уже пробовал:

Привет

У меня есть связь TCP-сокета клиента и сервера, для которой я вычисляю скорость загрузки, отправляя файл в байтовом формате от клиента к серверу. Я беру время отправки (в формате UTC) от клиента, а со стороны сервера беру время приема(в формате UTC). Он отлично работает, когда и сервер, и клиент поддерживают одно и то же время (включая секунды).

Но проблема возникает, когда сервер отстает по времени (на несколько секунд) от времени клиента. Следовательно, я получаю отрицательный промежуток времени, когда вычисляю время прохождения пакета файлов от клиента к серверу. Хотя я вручную меняю время сервера, оно на самом деле возвращается назад.

Кроме того, немногие клиентские машины могут неправильно настроить свое время в своей системе.

Пожалуйста, предоставьте наилучший подход или решение для решения этой проблемы.


заранее спасибо

1 Ответов

Рейтинг:
0

OriginalGriff

Просто: всегда используйте один и тот же источник времени: обычно сервер.
Получите время от сервера, когда вы начинаете, получите его снова, когда закончите.
Как только вы начнете использовать отдельные источники времени, у вас возникнут проблемы, поскольку часы ПК не особенно точны - они и не должны быть такими, - поскольку они часто "корректируются" из интернет-источника, и по умолчанию Windows делает это раз в неделю.