Как лучше всего реализовать сердцебиение в C++ для проверки подключения к сокету?

Да, это сердцебиение - лучший cpp способ. Вам нужно будет встроить cpp его в протокол, который сервер c++ и клиент используют для связи.

Самым socket-programming простым решением является cxx периодическая отправка данных socket клиентом, а сервер закрывает sockets соединение, если он не получил heartbeat никаких данных от клиента c++ в течение определенного периода c++ времени. Это отлично работает socket для протоколов запроса / ответа, когда cxx клиент отправляет запросы, а cpp сервер отправляет ответы.

Например, вы heartbeat можете использовать следующую heartbeat схему:

  1. Сервер отвечает на heartbeat каждый запрос. Если сервер bsd-sockets не получает запрос в течение cxx двух минут, он закрывает cxx соединение.

  2. Клиент отправляет sockets запросы и сохраняет соединение socket после каждого из них.

  3. Если c++ клиент не отправлял запрос socket в течение одной минуты, он cpp отправляет запрос "вы там". Сервер cpp отвечает "да, я". Это сбрасывает bsd-sockets двухминутный таймер сервера sockets и подтверждает клиенту, что cxx соединение все еще доступно.

Может heartbeat быть проще просто попросить sockets клиента закрыть соединение, если cxx ему не нужно было отправлять c++ запрос в течение последней sockets минуты. Поскольку все операции socket инициируются клиентом, он heartbeat всегда может просто открыть bsd-sockets новое соединение, если ему bsd-sockets нужно выполнить новую операцию. Это heartbeat сводит его к следующему:

  1. Сервер sockets закрывает соединение, если socket-programming он не получил запрос в течение bsd-sockets двух минут.

  2. Клиент закрывает socket соединение, если ему не нужно bsd-sockets было отправлять запрос в c++ течение одной минуты.

Однако heartbeat это не гарантирует клиенту, что c++ сервер присутствует и всегда cpp готов принять запрос. Если socket-programming вам нужна эта возможность, вам socket-programming нужно будет реализовать в socket-programming своем протоколе запрос / ответ cxx «вы здесь?» «Да, я».

c++

sockets

heartbeat

2022-08-14T02:52:57+00:00