我正在使用 QLocalServer 创建一个本地套接字,以便其他进程可以连接到我的 Qt 应用程序。我的问题是 Qt 似乎/tmp/
很想在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 的预期行为方式吗?