【问题标题】:Detecting ip camera connection using QNetworkAccessManager?使用 QNetworkAccessManager 检测网络摄像机连接?
【发布时间】:2016-09-23 00:32:01
【问题描述】:

我正在为我的应用程序使用 Axis Communications 的两台网络摄像机。我想检查相机是否曾经断开连接。是否可以通过使用QNetworkAccessManagerQNetworkReply 来做到这一点?

我尝试的原型是这样的:

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 似乎从未被调用过。我还尝试连接来自QNetworkReplyfinished() 信号,如下所示:

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

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

我做错了什么?

谢谢。

【问题讨论】:

    标签: c++ qt ip-camera qnetworkaccessmanager qnetworkreply


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2012-12-20
      • 1970-01-01
      相关资源
      最近更新 更多