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