Если особых требований к производительности нет, делай tcp соединение на localhost.
(Уточню, Udp на localhost, скорее всего, делает не то, что ты от него ожидаешь: он (хорошо так!) теряет датаграммы, поэтому будь внимательней)
А лучше всего использовать либы, которые просто позволяют поменять tcp на unixsocket, тогда у тебя не будет болеть об этом голова, а ты просто протестируешь оба варианта
Deleted ()
Последнее исправление: Deleted
(всего
исправлений: 1)
Как может вообще придти в голову идея использовать IP для локальных соединений?
Unix sockets - это быстрее и эффективнее (нет оверхеда IP), надёжнее (нет потерь пакетов), безопаснее (работает обычный механизм файловых прав доступа, левый юзер не подключится к демону), проще в настройке (не нужно трогать фаирвол, например).
Из моды, похоже, выходит минимальная техническая грамотность, в частности понимание разницы между низкоуровневыми средствами IPC и абстракциями уровнем выше.
Во-первых, ZMQ работает над теми же IP или unix domain sockets, так что на оригинальный вопрос вы своим неуместным советом не ответили, во-вторых, нафиг оно тут не впёрлось.
предложу еще и такой вариант - гуй просто в отдельный тред, открывать по необходимости, хоть локально, хоть удаленно, используя сетевую прозрачность иксов
Unix sockets - это быстрее и эффективнее (нет оверхеда IP), надёжнее (нет потерь пакетов), безопаснее (работает обычный механизм файловых прав доступа, левый юзер не подключится к демону), проще в настройке (не нужно трогать фаирвол, например).
В реальности имеет смысл только утверждение про права доступа. Остальное нерелевантно. Скорости тут с избытком (в ядре есть оптимизации для локального трафика) и на фаерволе никто loopback трафик не фильтрует.