Вы можете просто попробовать пинговать свой собственный IP.это произведет ICMP-пакеты.Существуют библиотеки, которые также позволяют вам делать то же самое из приложения.
Если вы хотите создавать пакеты для себя, вы можете использовать сокет API.Помните, что вы можете отправлять IP-адрес источника и IP-адрес назначения как один и тот же, но номер порта должен отличаться.
Для синхронизации вам может понадобиться функция gettimeofday
.
РЕДАКТИРОВАТЬ: вы можете пинговать из вашей программы C ++.Смотрите: http://verplant.org/liboping/ или посетите другой форум.Причина, по которой я подчеркнул ping, заключается в том, что он возвращается обратно из сетевого стека.Если вы отправляете пакет UDP с другой стороны, ожидая, что приложение вернется и выдает эхо, тогда время обработки пакета на сервере прослушивания будет добавлено.
Если вы пропингуете IP-адрес локальной машины (или даже lo
), он возвращает без переключения или маршрутизатора следующего перехода.Он будет реагировать, даже если вы удалите кабель Eth или Wi-Fi.
То, что вы пытаетесь сделать, реализовано в демоне NTP с протоколом NTP.