2017-09-07 6 views
0

가상 서버의 프로그램, IP, 사용자 이름 및 암호 (vps)를 입력하고 프로그램에서 사용자 이름과 암호가 올바른지 확인합니다. 호스트가 온라인 상태 인 경우에만, 알고 싶다면qt와의 가상 서버 (vps) 연결 문제를 확인하는 중

QNetworkReply::NetworkError(ProtocolUnknownError) 

나에게

+0

VPS는 기본 인증을 사용하여 포트 3389에서 TCP 웹 서버를 작동합니까? 통화는 http : // administrator : xxxx @xxxxx : 3389에 따라 수행됩니다. 브라우저에이 내용을 입력하면 웹 페이지에 로그인 한 것으로 보입니까? – user3606329

+0

아니오, 가상 서버는 데스크톱에 연결 만됩니다. 원격 (rdp) – ErfanProgrammer

+0

귀하의 요청 (위 코드 예에서)은 일반적인 TCP HTTP 요청 (페이지 방문)입니다. – user3606329

답변

0

을 안내하십시오 : 내가 당신을 제안

나는

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); 
} 

출력 다음 코드를 사용 QAbstractSocket 클래스의 connectToHost을 사용하십시오. RDP 프로토콜은 Wikipedia에 따라 TCP/UDP를 기반으로하며 3389 (의견에서 말한 내용)를 수신합니다.

TCP 3389에서 연결에 성공하면 호스트가 온라인 상태입니다.

Qt가 RDP에 핵심 모듈을 제공하지 않기 때문에 호스트가 온라인 상태이고 인증이 작동하는지 확인하려면 FreeRDP과 같은 자체 RDP 라이브러리를 구현해야합니다.

+0

도와 주셔서 대단히 감사합니다. <3 – ErfanProgrammer