我知道select可用于监视不同的文件描述符。我想知道是否可以在AF_UNIX和netlink套接字之间使用select()来监控它们吗?
感谢您的帮助!
由于
答案 0 :(得分:0)
如果您创建套接字,例如与
int listfd = socket(AF_UNIX, SOCK_STREAM, 0);
结果是一个文件描述符,遵循“一切都是文件”的理念。然后,您可以在由文件描述符表示的任何内容上调用select
。
了解select
,poll
and epoll
的替代方案可能会更好。它们可以更高效,恕我直言界面更好,因为它不使用FD_SET
等。
如果你有足够的设计自由,我会远离网络原语并使用处理通信的库或框架。我喜欢ZeroMQ,但还有很多其他选择。实际上,实现高效可靠的通信似乎很容易,但是当你想要处理错误情况时,它肯定会遇到一些困难。断了的连接。这些问题之前已经解决了。