File N:1文件描述符?
是否有可能将N个文件描述符视为1个文件描述符,以便在N个文件描述符中的任何一个(即从N个套接字)上接收的数据将转发回单个文件描述符上的调用API,从而隐藏它实际上可能来自不同文件描述符的事实?是否也可以对写入进行类似的抽象(但返回到正确的第n个文件描述符)?由于您标记并使用单词File N:1文件描述符?,file,sockets,file-descriptor,File,Sockets,File Descriptor,是否有可能将N个文件描述符视为1个文件描述符,以便在N个文件描述符中的任何一个(即从N个套接字)上接收的数据将转发回单个文件描述符上的调用API,从而隐藏它实际上可能来自不同文件描述符的事实?是否也可以对写入进行类似的抽象(但返回到正确的第n个文件描述符)?由于您标记并使用单词socket,我假定您的数据来自网络路径,并且您实际上希望通过同一套接字读取多个源 如果您使用的是TCP/IP套接字,那么您已经有了一个方案,该方案使用UDP套接字侦听多个源可以向其发送数据的本地端口 您不能有这样一个TC
socket
,我假定您的数据来自网络路径,并且您实际上希望通过同一套接字读取多个源
如果您使用的是TCP/IP套接字,那么您已经有了一个方案,该方案使用UDP套接字侦听多个源可以向其发送数据的本地端口
您不能有这样一个TCP套接字,但是select
API在所有标准实现中都可用,它允许您打开多个TCP侦听套接字,每个源一个,然后对整批进行选择。您将无法在此处“隐藏”源
如果您所追求的是抽象,那么更好的办法是编写一个小型应用程序来管理多个通信端点,并通过IPC与您的主要应用程序进行对话。您可以实现一个简短的头,以解决这个小应用程序的端点问题。然后,您的主应用程序将通过一个通信点查看所有内容
它还可以很好地解决您的文字抽象问题。您所说的“正确的第n个”描述符是什么意思?“类似抽象”意味着写入将指向所有描述符,而不是“正确”的描述符。否则,您将尝试构建muxer/demuxer对,但这需要一种将N嵌入读/写块的方法。