ZeroMQ: Проверьте, не слушает ли кто-то за доменом Unix socket

Контекст: Linux (Ubuntu), C, ZeroMQ

У меня есть сервер, который прослушивает сокет ipc: // SUB ZeroMQ (который физически является сокетом домена Unix).

У меня есть клиент, который должен подключиться к сокету, опубликуйте его сообщение и отключение.

Проблема: если сервер отключен (или иначе неестественно умирает), файл сокета остается на месте. Если клиент пытается подключиться к этому устаревшему сокету, он блокируется в zmq_term () .

Мне нужно предотвратить блокировку клиента, если сервера нет, но гарантировать доставку, если сервер жив, но занят.

Предположим, я не могу отследить время жизни сервера с помощью какой-то внешней магии (например, проверяя файл PID).

Есть подсказки?

6
задан Alexander Gladysh 23 April 2011 в 18:24
поделиться