Как измерить время прохождения сообщения сокета? - PullRequest
2 голосов
/ 28 марта 2011

У меня клиентские и серверные приложения на 2 разных серверах в интрасети. Как я могу измерить время, необходимое для отправки сообщения с сервера на клиент? (Я не могу зависеть от временных отметок машины, поскольку они могут быть выключены)

Ответы [ 4 ]

2 голосов
/ 28 марта 2011

Пингуйте сервер с клиента, разделите время на два.Это довольно хорошая, хотя и немного оптимистичная оценка практической задержки.(Ping использует протокол ICMP; вы получите различные измерения с приложением TCP, поскольку TCP должен сначала установить соединение .)

Если вы хотите сделать это в приложении C ++Лучшим вариантом может быть вызов команды ping и анализ ее выходных данных.Особеннов Unix, где вам обычно требуются права root для отправки ICMP-пакетов.

0 голосов
/ 28 марта 2011

Если у вас есть доступ к точному источнику времени на каждой машине, вы можете либо использовать его непосредственно для отметок времени, либо использовать его для вычисления разницы между часами машин. Какой точный источник времени? GPS. Вот первая ссылка на продукт, который поставляет Google: (ссылка) .

0 голосов
/ 28 марта 2011

Вы можете использовать ping, чтобы получить приблизительный показатель времени прохождения пакета от клиента к серверу и обратно.

0 голосов
/ 28 марта 2011

Если вы не можете полагаться на синхронизированные часы, единственный способ - отправлять сообщения туда и обратно, как это делает пинг. Если вы хотите знать, сколько времени занимает только поездка туда (или обратно), вы можете разделить на два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...