首页 > 解决方案 > 检查服务器进程是否正在侦听域套接字

问题描述

我正在编写客户端-服务器程序,该程序使用 unix 域套接字在双方之间进行通信。要求是:

  1. 服务器在给定地址上打开一个抽象套接字,然后监听它。通过一些触发器,服务器可以停止监听。
  2. 客户端必须监视服务器是否正在侦听给定的地址路径

    • 如果服务器正在侦听套接字,则向服务器发送注册请求
    • 如果服务器关闭套接字然后做一些动作清理......

要检查服务器是否正在侦听,我的解决方案是:

定期创建套接字连接到服务器地址路径,如果成功,则表示服务器正在侦听,反之亦然。

但是,如果检查间隔太短,该解决方案似乎会消耗 CPU。

那么我的问题是:我们是否有任何方法,例如向系统注册一些回调,并在某个进程开始/停止侦听给定地址时获取通知?或其他更好的建议...??

非常感谢,

标签: clinuxsocketsunixclient-server

解决方案


推荐阅读