用例是一个应用程序生成一个事件并发出一个信号,表明任何关心它的应用程序都会得到它。例如。应用程序更新文件的内容并发出信号。在Linux上,这可以由服务员在文件上调用inotify来完成。一种可移植的方式是让听众注册一个着名的服务器,但我希望如果可能的话更简单。尽可能便携,理想情况下意味着只使用广泛可用的POSIX功能。
答案 0 :(得分:1)
您可以通过锁定文件来完成此操作。
信号发射器初始设置:
fcntl(F_SETLK)
与F_WRLCK
或flock(LOCK_EX)`。)。信号接收程序:
fcntl(F_SETLK)
F_RDLCK
或flock(LOCK_SH)
)。信号发射:
在信号发射器中,已在原始锁定文件顶部重命名的临时锁定文件现在变为新的当前锁定文件。
让接收者加入组播组并等待数据包。让信号发射器将UDP数据包发送到该多播组。
如果您希望仅使用主机本地通信,则可以将发送和接收UDP套接字绑定到环回接口。
答案 1 :(得分:0)
最后我使用了绑定的unix域套接字。所有者保留一组客户端FD,并在发生事件时向每个FD发送消息。