Qt Network TCP сокеті үшін SOCKS5-ті тікелей келісе алады. Бар Qt қолданбасында қосылу алдында сокетті конфигурациялаңыз:

QNetworkProxy proxy(
    QNetworkProxy::Socks5Proxy,
    "proxy.example.net",
    1080
);

socket.setProxy(proxy);
socket.connectToHost("service.example.net", 12345);

socket — бар QTcpSocket. Мысалдағы меже мен порт қолданбаның TCP қызметін білдіреді. Qt әуелі проксиге жетеді, содан кейін одан сол межеге қосылуды сұрайды. Жалпыға қолжетімді TCP қызметі үшін, онда жалпы делдал рұқсат етілсе, SOCKS5 прокси тізімі осы прокси шотынсыз мысалға үміткерлер ұсынады. Үміткер қызметтің нақты хост мен портына рұқсат беретінін тексеріңіз.

Қалыпты асинхронды сокет сигналдары әлі де қолданылады: қолданба деректерін алмасу алдында connected() күтіңіз және errorOccurred() өңдеңіз. Байланыс пайдаланылып жатқанда сокет нысанын тірі ұстаңыз. Блоктайтын код үшін оның орнына Qt-тың құжатталған күту әдістерін әдейі тайм-аутпен пайдаланыңыз.

Бұл Qt Network қажет етеді, widgets негізіндегі GUI емес. Айқын параметр осы сокетке тиесілі. Басқа сокеттер қолданбаның әдепкі мәндерін сақтай алады немесе басқа прокси таңдай алады. Осы сокетті тікелей ету үшін қосылу алдында оның прокси түрін QNetworkProxy::NoProxy етіп орнатыңыз.

Қатысты мақалалар