【发布时间】:2014-07-18 18:11:21
【问题描述】:
我在 Linux Debian 上使用 Qt 4.8.2(64 位)。
我遇到了套接字状态的问题。我是连接服务器的客户端,我的相关代码 sn-p 是:
QTcpSocket *socket = new QTcpSocket(this);
socket->connectToHost(interface[cameras[listnum].interface].ip,interface[cameras[listnum].interface].port);
qDebug() << socket->waitForConnected(10000);
qDebug() << socket->isValid();
qDebug() << socket->state();
我正在连接到我本地的服务器,我可以断开与它的以太网电缆以测试连接和未连接状态。我可以通过等待时间判断我是否连接,如果电缆已连接到服务器,则 waitForConnected 需要不到 0.5 秒,如果未连接电缆,则 waitForConnected 在 10 秒后超时。
我的问题是我是否获得了相同的连接状态。 qDebug 的输出是:
假
是的
QAbstractSocket::UnconnectedState
无论我是否真的连接,它都会保持这种状态。连接后,我可以发送数据。我还将最后两条语句放在命令按钮中,并验证返回状态即使在几秒钟或几分钟后也不会改变。
任何能指引我正确方向的帮助将不胜感激。
【问题讨论】:
标签: qt sockets status qtcpsocket