是否可以将N个文件描述符视为1个文件描述符,以便在任何N个文件描述符(即来自N个套接字)上接收的数据将被转发回单个文件描述符上的调用API ,隐藏它实际上可能来自不同的文件描述符的事实?是否也可以类似地抽象写入(但返回正确的第N个文件描述符)?
答案 0 :(得分:3)
由于您标记并使用单词socket
,我假设您的数据来自网络路径,并且您实际上想要通过同一套接字读取多个源。
如果您正在使用TCP / IP套接字,那么您已经拥有了 UDP 套接字侦听多个源可以向其发送数据的本地端口的方案。
您不能拥有这样的 TCP 套接字,但select
API可用于所有标准实现,以允许您打开多个TCP侦听套接字,每个源一个,然后执行选择总的来说。您将无法在此处“隐藏”来源。
如果您正在使用抽象,那么更好的想法是编写一个小应用程序来管理这个多个通信端点,并通过 IPC与您的主应用程序进行交流。您可以实现一个短标头来解决这个小应用程序的端点问题。然后,您的主应用程序将通过一个通信点查看所有内容。
它也将很好地解决您抽象写入的问题。