N: 1 файловые дескрипторы? - PullRequest
       16

N: 1 файловые дескрипторы?

1 голос
/ 05 августа 2009

Возможно ли, чтобы N файловых дескрипторов рассматривалось программой как 1 файловый дескриптор, так что данные, полученные по любому из N файловых дескрипторов (т. Е. Из N сокетов), будут пересылаться обратно в вызывающий API на дескриптор одного файла скрывает тот факт, что это может быть из другого файлового дескриптора? Возможно ли, чтобы записи аналогичным образом были абстрагированы (но возвращаясь к правильному N-му дескриптору файла)?

1 Ответ

3 голосов
/ 05 августа 2009

Поскольку вы помечаете и используете слово socket, я предполагаю, что ваши данные поступают по сетевому пути, и вы действительно хотите прочитать несколько источников через один сокет.

Если вы работаете с сокетами TCP / IP, у вас уже есть эта схема с сокетами UDP , которые прослушивают локальный порт, на который несколько источников могут отправлять данные.

У вас не может быть такого сокета TCP , однако API select доступен во всех стандартных реализациях, что позволяет открывать несколько прослушивающих сокетов TCP, по одному на источник, а затем делать выборку в целом. много. Вы не сможете «спрятать» источник здесь.

Если абстракция - это то, что вам нужно, лучше было бы написать небольшое приложение, которое будет управлять этими несколькими конечными точками связи и общаться с вашим основным приложением через IPC, Вы можете реализовать короткий заголовок для адресации конечных точек этого небольшого приложения. Ваше основное приложение увидит все через одну точку связи.

Это также поможет решить проблему абстрагирования записей.

...