Создание локального сокета в пользовательском месте с помощью Qt

Я использую QLocalServer для создания локального сокета, чтобы другие процессы могли подключаться к моему приложению Qt. Моя проблема в том, что Qt, кажется, не справляется с созданием файла сокета в /tmp/, но я бы предпочел следовать рекомендациям XDG и использовать XDG_RUNTIME_DIR Переменная окружения для определения правильного пользовательского расположения сокета.

Если я использую:

QLocalServer socketServer;
socketServer.setSocketOptions(QLocalServer::UserAccessOption);
socketServer.listen("appname.socket"); //creates socket file, returns true.

тогда сокет создается в /tmp/, но если я попытаюсь вместо этого указать абсолютный или относительный путь, тогда Qt, похоже, вообще не будет создавать сокет.

QLocalServer socketServer;
socketServer.setSocketOptions(QLocalServer::UserAccessOption);
socketServer.listen("/tmp/appname.socket"); //returns false, does not create socket.

Изменить: при ближайшем рассмотрении, setSocketOptions (QLocalServer :: UserAccessOption) — который устанавливает разрешения для файла сокета — это то, что мешает мне указать пути к сокетам. Комментирование этой строки снимает ограничение. Но, конечно же, это не то, как должен вести себя Qt?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]