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 болгож тохируулна.

Холбоотой нийтлэлүүд