ZeroMQ:检查是否有人在Unix域套接字后面监听

Ale*_*ysh 6 linux ipc zeromq unix-socket

上下文:Linux(Ubuntu),C,ZeroMQ

我有一个侦听ipc://SUB ZeroMQ套接字的服务器(物理上是一个Unix域套接字).

我有一个客户端应该连接到套接字,发布其消息并断开连接.

问题:如果服务器被杀死(或以其他方式不自然地死亡),套接字文件将保持不变.如果客户端尝试连接到这个陈旧的套接字,它会阻塞zmq_term().

如果服务器不存在,我需要阻止客户端阻止,但如果服务器处于活动状态但很忙,则保证传送.

假设我无法通过某些外部魔法跟踪服务器生命周期(例如,通过检查PID文件).

任何提示?

Ale*_*ysh 4

不可移植的解决方案似乎是在那里读取/proc/net/unix和搜索套接字名称。