#linux #sockets #ipc #embedded-linux
#linux #сокеты #ipc #встроенный-linux
Вопрос:
Я создаю уровень сообщений для процессов, запущенных во встроенной системе Linux. Я планирую использовать сокеты. Эта система может быть перенесена на другие операционные системы в будущем, поэтому проблема переносимости. Производительность ниже переносимости в порядке приоритета.
У меня есть несколько вопросов относительно моего дальнейшего продвижения.
- Я подумываю об использовании интернет-сокетов через TCP / IP для этой связи между локальными процессами в целях мобильности. Есть ли какая-либо причина, по которой я не должен этого делать и использовать доменные сокеты?
- Действительно ли это улучшает переносимость при использовании интернет-сокетов вместо доменных сокетов?
- Если это действительно путь вперед, можете ли вы указать мне правильное направление (как использовать порты для каждого процесса и т. Д.) С помощью некоторых онлайн-ресурсов?
Комментарии:
1. Насколько переносимо — больше, чем системы posix? Какого рода связь? Подходит ли это для разделяемой памяти?
2. Да, за пределами семейства POSIX. Использование сокетов в значительной степени определяется архитектором, если нет очень веских аргументов против этого.
3. Я подозреваю, что вы правы. Вы могли бы обернуть собственные средства общим интерфейсом, но если у вас нет веской причины, возможно, это не стоит усилий. Например, разница в коде между доменными сокетами и tcp почти нулевая.
4. Спасибо. Есть ли у вас какие-либо предлагаемые чтения; Я не совсем понимаю детали; как выбрать номера портов и т. Д. Я не смог найти много литературы по этому вопросу.
5. Многим людям нравится руководство Beej , которое довольно простое, но четко написанное и бесплатное. Я думаю, что большая часть его доменного сокета находится в другом руководстве по unix sockets . В номерах портов нет ничего особенного. Серверы обычно используют число в нижнем диапазоне (но выше 1024, если вы не являетесь root) для своего порта прослушивания. Клиенты обычно просто используют порт, возвращаемый по умолчанию.