如何在qt中解析网络主机名+端口?

时间:2014-05-21 20:42:59

标签: c++ qt networking qtcore qurl

我目前正在Qt编写网络应用程序,需要以下列形式分隔网络地址:

example.org:1234

进入单独的主机名和端口QStrings。

是否有Qt函数可以轻松解析此问题并检查给定输入是否正确?

提前致谢!

2 个答案:

答案 0 :(得分:3)

这很简单;您只需使用QUrl类,constructorhost()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对象的hostport方法来获取所需的QString。

auto url{ QUrl::fromUserInput(address) };
auto host{ url.host() };
auto port{ QString::number(url.port()) };