2017-09-07 1 views
0

Je souhaite entrer le programme, l'adresse IP, le nom d'utilisateur et le mot de passe d'un serveur virtuel (vps) et le programme vérifie que le nom d'utilisateur et le mot de passe sont corrects ou non.Problème de connexion du serveur virtuel (vps) avec qt

J'ai utilisé le code suivant

void MainWindow::test() 
{ 
    QLoggingCategory::setFilterRules("qt.network.ssl.warning=false"); 
    QNetworkAccessManager* manager = new QNetworkAccessManager(this); 
    QUrl url; 
    url.setHost("xx.xxx.xx.xx"); 
    url.setPort(3389); 
    url.setUserName("administrator"); 
    url.setPassword("xxxx"); 
    manager->get(QNetworkRequest(url)); 
    connect(manager,&QNetworkAccessManager::finished, this, &MainWindow::connFinished); 
} 

sortie:

QNetworkReply::NetworkError(ProtocolUnknownError) 

s'il vous plaît me conduiras

+0

Le serveur VPS exploite le serveur Web TCP sur le port 3389 avec l'authentification de base? Votre appel va faire juste après http: // administrateur: xxxx @xxxxx: 3389. Si vous tapez ceci dans votre navigateur, voyez-vous une page web? – user3606329

+0

Non, je pense, le serveur virtuel se connecte uniquement à la télécommande de bureau (rdp) – ErfanProgrammer

+0

Votre requête (dans l'exemple de code ci-dessus) est une requête HTTP TCP normale (visite d'une page). – user3606329

Répondre

0

Si vous voulez seulement savoir, si l'hôte est en ligne: Je vous suggère utilisez connectToHost de la classe QAbstractSocket. Le protocole RDP est basé sur TCP/UDP selon Wikipedia et écoute sur 3389 (ce que vous avez dit dans les commentaires.).

Si la connexion sur TCP 3389 aboutit, l'hôte est en ligne.

Si vous souhaitez vérifier si l'hôte est en ligne et que l'authentification fonctionne, vous devez implémenter votre propre bibliothèque RDP, telle que FreeRDP, car Qt ne fournit aucun module principal pour RDP.

+0

Merci beaucoup de m'avoir aidé. <3 – ErfanProgrammer