背景:Linux (Ubuntu),C,ZeroMQ
我有一个服务器,它在 ipc://
SUB ZeroMQ socket 上监听(物理上是 Unix 域套接字)。
我有一个客户端,应该连接到此套接字,发布消息并断开连接。
问题:如果服务器被杀死(或以其他不正常的方式死亡),套接字文件将保持原地。如果客户端尝试连接到这个陈旧的套接字,它会在 zmq_term()
中阻塞。
我需要防止客户端因服务器不存在而阻塞,但如果服务器存活但繁忙,则需要保证传递。
假设我无法通过某种外部魔法(例如检查 PID 文件)来跟踪服务器生命周期。
有什么提示吗?