Search code examples
c++qtnetwork-programmingqtcorequrl

How to parse network hostname + port in qt?


I am currently writing a network application in Qt and need to seperate network adresses in the form:

example.org:1234

into seperate hostname and port QStrings.

Is there a Qt function to easily parse this and check if the given input is correct?

Thanks in advance!


Solution

  • This is quite simple; you just use the QUrl class for this with the constructor, host() and port() methods as follows:

    QUrl url("http://example.org:1234")
    qDebug() << "Host:" << url.host();
    qDebug() << "Port:" << url.port();
    

    As for your comment for avoiding the scheme usage in each url, you could use this:

    url.setScheme("ftp");
    

    or

    url.setScheme("http");