服务器重新启动后重新连接到QDBus服务器(Qt C++)

Re-connecting to QDBus server after server has been restarted (Qt C++)

本文关键字:服务器 Qt C++ 重新启动 重新连接 QDBus      更新时间:2023-10-16

我正在测试使用DBus进行QT C++项目(Linux)的进程间通信。

我没有使用总线守护进程,而是使用unix路径/套接字。

在QT DBUS这个神秘的世界中导航之后,一切似乎都很顺利,直到我想测试我的一个接口的稳健性。

在终止服务器进程并重新启动后,连接超时。。我清理连接对象(客户端),然后尝试重新连接到服务器。

客户端似乎无法重新连接,我收到以下错误:错误名称:org.freedesktop.DBus.Error.NoServererrMesage:无法连接到套接字/tmp/abcd:连接被拒绝

我尝试过:-QDBusConnection::disconnectFromPeer(addr);-正在清理所有相关的对象,因此不存在对该连接的引用。

当我重新启动客户端时,它连接到(重新启动的)服务器没有问题。

发现问题!似乎是Qt 4.8.x中的一个错误:https://bugreports.qt.io/browse/QTBUG-27973https://codereview.qt-project.org/#/c/60709/

QDBusConnection::disconnectFromBus和QDBusConnection::disconnect FromPeer不删除无效连接