0

我正在为我的应用程序使用 Axis Communications 的两个 ip 摄像机。我想检查相机是否曾经断开连接。QNetworkAccessManager是否可以通过使用and来做到这一点QNetworkReply

我尝试的原型如下:

QNetworkAccessManager *m_networkAccessManager = new QNetworkAccessManager();
QNetworkReply *m_networkReply = m_networkAccessManager->get(QNetworkRequest(camUrl));
if (!m_networkReply)
{
   delete m_networkAccessManager;
   qDebug()<<"Camera not found"<<endl;
}

connect(m_networkReplyCam, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(cameraDisconnected(QNetworkReply::NetworkError)));

void MainWindow::cameraDisconnected(QNetworkReply::NetworkError)
{
    qDebug()<<"Camera Disconected"<<endl;
}

但是该插槽cameraDisconnected似乎从未被调用。我还尝试连接finished()来自QNetworkReply以下的信号:

connect(m_networkReplyCam, SIGNAL(finished()), this, SLOT(cameraDisconnected()));

但即便如此,插槽也永远不会被调用。

我究竟做错了什么?

谢谢。

4

1 回答 1

0

如果主机无法访问,您的请求将在一段时间后超时。没有内置方法可以设置特定的超时时间,QNetworkRequest因此QNetworkAccessManager一种可能性是实现您自己的计时器以在特定时间后中止。有多个示例可以做到这一点,例如123

于 2016-05-25T12:57:35.573 回答