我目前正在Qt编写网络应用程序,需要以下列形式分隔网络地址:
example.org:1234
进入单独的主机名和端口QStrings。
是否有Qt函数可以轻松解析此问题并检查给定输入是否正确?
提前致谢!
答案 0 :(得分:3)
这很简单;您只需使用QUrl
类,constructor,host()和port()方法,如下所示:
QUrl url("http://example.org:1234")
qDebug() << "Host:" << url.host();
qDebug() << "Port:" << url.port();
关于您在每个网址中避免使用方案的评论,you could use this:
url.setScheme("ftp");
或
url.setScheme("http");
答案 1 :(得分:0)
是的,您应该使用QUrl::fromUserInput函数来解析字符串,然后使用QUrl对象的host和port方法来获取所需的QString。
auto url{ QUrl::fromUserInput(address) };
auto host{ url.host() };
auto port{ QString::number(url.port()) };