Взаимодействие с процессами на одном хосте с использованием интернет-сокетов?

#linux #sockets #ipc #embedded-linux

#linux #сокеты #ipc #встроенный-linux

Вопрос:

Я создаю уровень сообщений для процессов, запущенных во встроенной системе Linux. Я планирую использовать сокеты. Эта система может быть перенесена на другие операционные системы в будущем, поэтому проблема переносимости. Производительность ниже переносимости в порядке приоритета.

У меня есть несколько вопросов относительно моего дальнейшего продвижения.

  1. Я подумываю об использовании интернет-сокетов через TCP / IP для этой связи между локальными процессами в целях мобильности. Есть ли какая-либо причина, по которой я не должен этого делать и использовать доменные сокеты?
  2. Действительно ли это улучшает переносимость при использовании интернет-сокетов вместо доменных сокетов?
  3. Если это действительно путь вперед, можете ли вы указать мне правильное направление (как использовать порты для каждого процесса и т. Д.) С помощью некоторых онлайн-ресурсов?

Комментарии:

1. Насколько переносимо — больше, чем системы posix? Какого рода связь? Подходит ли это для разделяемой памяти?

2. Да, за пределами семейства POSIX. Использование сокетов в значительной степени определяется архитектором, если нет очень веских аргументов против этого.

3. Я подозреваю, что вы правы. Вы могли бы обернуть собственные средства общим интерфейсом, но если у вас нет веской причины, возможно, это не стоит усилий. Например, разница в коде между доменными сокетами и tcp почти нулевая.

4. Спасибо. Есть ли у вас какие-либо предлагаемые чтения; Я не совсем понимаю детали; как выбрать номера портов и т. Д. Я не смог найти много литературы по этому вопросу.

5. Многим людям нравится руководство Beej , которое довольно простое, но четко написанное и бесплатное. Я думаю, что большая часть его доменного сокета находится в другом руководстве по unix sockets . В номерах портов нет ничего особенного. Серверы обычно используют число в нижнем диапазоне (но выше 1024, если вы не являетесь root) для своего порта прослушивания. Клиенты обычно просто используют порт, возвращаемый по умолчанию.