上下文:Linux (Ubuntu)、C、ZeroMQ
我有一个监听 ipc://
SUB ZeroMQ 套接字(实际上是一个 Unix 域套接字)的服务器。
我有一个客户端应该连接到套接字,发布它的消息并断开连接。
问题:如果服务器被终止(或非自然终止),套接字文件会保留在原地。如果客户端尝试连接到这个过时的套接字,它会在 zmq_term()
中阻塞。
如果服务器不存在,我需要防止客户端阻塞,但如果服务器处于事件状态但很忙,则保证交付。
假设我无法通过某些外部魔法(例如通过检查 PID 文件)跟踪服务器生命周期。
有什么提示吗?
最佳答案
不可移植的解决方案似乎是阅读 /proc/net/unix
并在那里搜索套接字名称。
关于linux - ZeroMQ:检查是否有人在 Unix 域套接字后面监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766051/