Контекст: Linux (Ubuntu), C, ZeroMQ
У меня есть сервер, который прослушивает сокет ipc: //
SUB ZeroMQ (который физически является сокетом домена Unix).
У меня есть клиент, который должен подключиться к сокету, опубликуйте его сообщение и отключение.
Проблема: если сервер отключен (или иначе неестественно умирает), файл сокета остается на месте. Если клиент пытается подключиться к этому устаревшему сокету, он блокируется в zmq_term ()
.
Мне нужно предотвратить блокировку клиента, если сервера нет, но гарантировать доставку, если сервер жив, но занят.
Предположим, я не могу отследить время жизни сервера с помощью какой-то внешней магии (например, проверяя файл PID).
Есть подсказки?