Что такое розетки, трубы и устройства? - PullRequest
2 голосов
/ 23 октября 2010

Я изучаю темы программирования низкоуровневого управления файлами от Apple. В разделе NSFileHandle они говорят:

Область действия NSFileHandle не ограничено файлами. Это обеспечивает только Основание объекта, который может читать и пишите в каналы связи такие как те, которые реализуются сокетами, трубы и устройства.

Это звучит здорово! Так что я могу общаться через NSFileManager с сокетом, который затем передает эти данные на веб-сервер, где я возлюсь с файлом напрямую, удаленно?

Может кто-нибудь привести несколько простых для понимания примеров, что я мог бы сделать с этим,

  • при общении с «сокетом»?
  • при общении с "Трубой"?
  • при связи с «устройством»?

Примечание: я ничего не знаю о сокетах, трубах, устройствах. И я уверен, что под Устройствами они не подразумевают сам iPhone. Я не знаком с сетевыми вещами. Но я хочу научиться этому !! Может быть, вы могли бы также дать краткое объяснение, что это за вещи?

1 Ответ

7 голосов
/ 23 октября 2010

Сокет - это ресурс, который вы используете для связи по сети. Когда приложение хочет установить какую-либо сетевую связь, оно должно подключиться к узлу назначения. Для этого используется socket. В большинстве случаев используется сетевой протокол TCP / IP. Для этого необходимо указать IP-адрес или имя хоста, к которому следует подключаться, и так называемый TCP-порт - это уникальный идентификатор службы, работающей на целевом хосте, например, 80 используется для HTTP. Когда соединение установлено, вы используете сокет аналогично дескриптору файла, вы просто записываете в него некоторые данные или читаете из него. Вот как обычно работает сеть.

Pipe - это средство, созданное в Unix, - помните, Mac и iPhone основаны на Unix-системах. Это (тайный, но все еще популярный) способ связи между двумя процессами. С точки зрения программирования, это похоже на дескриптор файла - когда два процесса соединены через канал, они могут записывать и считывать в канал для связи между собой.

Устройство - это абстракция устройства. Представьте, что вы хотите иметь прямой доступ к вашему жесткому диску. В Unix-системах это делается так, что вы открываете какой-то специальный файл, который на самом деле не является файлом, а создается в файловой системе как «устройство». Проверьте каталог "/ dev /" на вашем Mac, он содержит доступные устройства. Для жесткого диска вы можете найти "/ dev / disk0", для его первого раздела "/ dev / disk0s1". Эти «устройства» представляют драйверы устройств, загруженные в ядро. Расширения ядра (например, драйверы) могут предоставлять такое устройство для обеспечения связи с программами пользовательского пространства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...