Qt Network ສາມາດຈັດການ SOCKS5 ສຳລັບ socket TCP ໄດ້ໂດຍກົງ. ໃນແອັບພລິເຄຊັນ Qt ທີ່ມີຢູ່ແລ້ວ, ຕັ້ງຄ່າ socket ກ່ອນການເຊື່ອມຕໍ່:

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

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

socket ແມ່ນ QTcpSocket ທີ່ມີຢູ່ແລ້ວ. ປາຍທາງ ແລະ ພອດໃນຕົວຢ່າງແມ່ນຕົວແທນຂອງບໍລິການ TCP ຂອງແອັບພລິເຄຊັນ. Qt ໄປຮອດ proxy ກ່ອນ, ແລ້ວຈຶ່ງຂໍໃຫ້ມັນເຊື່ອມຕໍ່ໄປຍັງປາຍທາງນັ້ນ. ສຳລັບບໍລິການ TCP ທີ່ເຂົ້າເຖິງໄດ້ຈາກສາທາລະນະ ແລະ ອະນຸຍາດໃຫ້ມີຕົວກາງສາທາລະນະ, ລາຍຊື່ proxy SOCKS5 ໃຫ້ຕົວເລືອກສຳລັບຕົວຢ່າງທີ່ບໍ່ມີບັນຊີ proxy ນີ້. ກວດສອບວ່າຕົວເລືອກນັ້ນອະນຸຍາດ host ແລະ ພອດຕົວຈິງຂອງບໍລິການ.

ສັນຍານ socket ແບບ asynchronous ປົກກະຕິຍັງໃຊ້ໄດ້: ລໍຖ້າ connected() ກ່ອນແລກປ່ຽນຂໍ້ມູນແອັບພລິເຄຊັນ, ແລະ ຈັດການ errorOccurred(). ຮັກສາວັດຖຸ socket ໃຫ້ຢູ່ຕະຫຼອດເວລາທີ່ການເຊື່ອມຕໍ່ຖືກໃຊ້. ສຳລັບໂຄດແບບ blocking, ໃຫ້ໃຊ້ວິທີລໍຖ້າຕາມເອກະສານຂອງ Qt ພ້ອມ timeout ທີ່ກຳນົດໄວ້ແທນ.

ສິ່ງນີ້ຕ້ອງການ Qt Network, ບໍ່ແມ່ນ GUI ທີ່ອີງໃສ່ widgets. ການຕັ້ງຄ່າທີ່ຊັດເຈນນີ້ເປັນຂອງ socket ນີ້ເທົ່ານັ້ນ. socket ອື່ນສາມາດຮັກສາຄ່າເລີ່ມຕົ້ນຂອງແອັບພລິເຄຊັນ ຫຼື ເລືອກ proxy ອື່ນ. ເພື່ອໃຫ້ socket ນີ້ເຊື່ອມຕໍ່ໂດຍກົງ, ຕັ້ງປະເພດ proxy ຂອງມັນເປັນ QNetworkProxy::NoProxy ກ່ອນເຊື່ອມຕໍ່.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ