Qt ئارقىلىق SOCKS5 دىن TCP ئېقىمى ئېچىش
نىشانغا ئۇلانغاندىن بۇرۇن QTcpSocket نىڭ ئېنىق ۋاكالەتچىسىنى تەڭشەڭ، GUI تەلەپ قىلمايدىغان Qt Network نى ئىشلىتىڭ.
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 قىلىپ تەڭشەڭ.