ZBLOG

qt 解析url rtsp://192.168.10.58:1720/streaming?channel=1&subtype=0&transportmode=tcp typedef struct{ int channel; /**

使用Qt解析URL可以使用QUrl类。以下是一个示例代码,演示如何解析给定的URL:

#include <QCoreApplication>
#include <QDebug>
#include <QUrl>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString urlString = "rtsp://192.168.10.58:1720/streaming?channel=1&subtype=0&transportmode=tcp";
    QUrl url(urlString);

    if (url.isValid()) {
        qDebug() << "Scheme: " << url.scheme(); // 获取协议(scheme),例如:rtsp
        qDebug() << "Host: " << url.host(); // 获取主机名,例如:192.168.10.58
        qDebug() << "Port: " << url.port(); // 获取端口号,例如:1720

        // 解析查询参数
        QUrlQuery query(url.query());
        for (auto pair : query.queryItems()) {
            qDebug() << pair.first << ": " << pair.second;
        }
        
        SdkNetLiveOpenBscpReq info;
        info.channel = query.queryItemValue("channel").toInt();
        info.protocol = query.queryItemValue("transportmode").toLower() == "tcp" ? 1 : 2;
        info.ip = QHostAddress(url.host()).toIPv4Address();
        info.port = url.port();
        info.coder = 0;

        // 使用解析得到的信息进行后续操作...
    } else {
        qDebug() << "Invalid URL";
    }

    return a.exec();
}

请注意,在实际应用中,您可能需要添加更多错误处理和输入验证来确保URL和查询参数的有效性。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=5216

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?