等待Unix域套接字被绑定

Jam*_*mes 5 ipc unix-socket

我正在编写一个客户端应用程序,该应用程序通过Unix域套接字连接到服务器进程。如果服务器进程未运行,我希望客户端等待服务器启动并正在侦听套接字上的连接。

目前,我在客户端中有一个重试循环,每秒调用一次connect(),直到它成功连接到套接字为止。

我是否可以调用任何函数,这些函数将一直阻塞直到创建特定的命名套接字(例如“ / var / mysock”)并将其绑定到服务器进程为止?

JB.*_*JB. 4

不是完整的答案,但是......

如果您使用的是 Linux,该inotify界面将让您捕获操作的前几个有用步骤:

  • unlink'ing 剩余的前插座将触发它IN_DELETE_SELF
  • bindIN_CREATE'ing 将在父目录上触发。

不幸的是,服务器无法connect做到这listen一点。尽管这是下一个合乎逻辑的步骤,但实际上并不能保证它会立即执行。它看起来并没有inotify提供一个接口。