【问题标题】:QtRO - class qremoteobjects - how can connect 2 and more remote peers beetwen TCPQtRO - q 类远程对象 - 如何在 TCP 之间连接 2 个或更多远程对等方
【发布时间】:2017-10-11 23:50:02
【问题描述】:
我在 Qt5.9 中使用注册表节点构建示例 simpleswitch。它工作正常,但是当我在定义中替换 QUrl("local.registry") 和 QUrl("local.replica") 和QRemoteObjectHost 到 QUrl("tcp://localhost:9999") 或 "tcp://127.0.0.1:9999",或粘贴当前主机地址到defniton...运行应用程序后出现错误...
qt.remoteobjects:监听 URL 失败:QUrl("tcp://127.0.0.1:9999")
qt.remoteobjects: QAbstractSocket::AddressInUseError
qt.remoteobjects:无法为客户端创建 ClientIoDevice。提供的网址/方案无效? QUrl("")
【问题讨论】:
标签:
c++
qt
sockets
tcp
qurl
【解决方案1】:
有效值,用QUrl("local.registry")代替:
QUrl("tcp://192.168.0.3:-1");
有效值,用QUrl("local.replica")代替:
QUrl("tcp://192.168.0.3:9999");
IP 地址192.168.0.3 - 例如(它的值对我们办公网络中的我的工作站有效)在您的情况下 IP 地址可以包含其他数字。
【解决方案2】:
如果 Qt 指示“地址正在使用中”,那么这很可能是问题的根源,实际上是在使用 IP:PORT 处的套接字。你可以检查你的开发环境,看看你是否有多个进程在运行同一个应用程序——这通常是这种情况,它会导致地址空间的冲突。我们在我们的环境中一直看到这个错误,根本原因很简单:“地址正在使用中”。