在netlink和unix socket fd之间选择()

时间:2018-03-08 01:20:53

标签: c++ ipc

我知道select可用于监视不同的文件描述符。我想知道是否可以在AF_UNIX和netlink套接字之间使用select()来监控它们吗?

感谢您的帮助!

由于

1 个答案:

答案 0 :(得分:0)

如果您创建套接字,例如与

int listfd = socket(AF_UNIX, SOCK_STREAM, 0);

结果是一个文件描述符,遵循“一切都是文件”的理念。然后,您可以在由文件描述符表示的任何内容上调用select

了解selectpoll and epoll的替代方案可能会更好。它们可以更高效,恕我直言界面更好,因为它不使用FD_SET等。

如果你有足够的设计自由,我会远离网络原语并使用处理通信的库或框架。我喜欢ZeroMQ,但还有很多其他选择。实际上,实现高效可靠的通信似乎很容易,但是当你想要处理错误情况时,它肯定会遇到一些困难。断了的连接。这些问题之前已经解决了。