2

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

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

在穿越神秘的 QT DBUS 世界之后,一切似乎都进展顺利,直到我想测试我的一个接口的稳健性。

杀死服务器进程并重新启动它后,连接超时..我清理连接对象(客户端)并尝试重新连接到服务器。

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

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

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

4

1 回答 1

0

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

QDBusConnection::disconnectFromBus 和 QDBusConnection::disconnectFromPeer 不会删除无效连接

于 2016-04-05T07:29:54.607 回答