Qt Network-ს შეუძლია SOCKS5-ის უშუალოდ მოლაპარაკება TCP სოკეტისთვის. არსებულ 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-ზე.

დაკავშირებული სტატიები