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

标签 linux ipc zeromq unix-socket

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

我有一个监听 ipc:// SUB ZeroMQ 套接字(实际上是一个 Unix 域套接字)的服务器。

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

问题:如果服务器被终止(或非自然终止),套接字文件会保留在原地。如果客户端尝试连接到这个过时的套接字,它会在 zmq_term() 中阻塞。

如果服务器不存在,我需要防止客户端阻塞,但如果服务器处于事件状态但很忙,则保证交付。

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

有什么提示吗?

最佳答案

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

关于linux - ZeroMQ:检查是否有人在 Unix 域套接字后面监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766051/

相关文章:

zeromq - 谁能解释一下请求-回复代理 Zeromq 示例吗?

java - 无论如何要通过 JVMTI 获得 jthread tid?

linux - 在 AWS EC2 实例上打开端口

linux - 检查二进制文件的映射

android - 从 Android 中的未绑定(bind)服务获取数据

c - LINUX IPC : Passing different values to CHILD process using PIPE not working, 除了第一次,在 C 中

c - 使用 czmq 传递消息

linux - 使用 Ansible 删除 cron

c - 在不同网络命名空间中的进程之间共享状态

c# - C# 中的 CurveZMQ 示例以及为什么在使用 CurveZMQ 时不能将 SetOption() 用于 CURVE_SECRETKEY?