Asio ຕ້ອງການການແລກປ່ຽນ SOCKS5 ຫຼັງຈາກເຊື່ອມຕໍ່ກັບພຣອກຊີ
ຖືວ່າ SOCKS5 ເປັນເຄື່ອງຈັກສະຖານະຂອງໂປຣໂຕຄໍຢູ່ເທິງ Asio socket ໂດຍມີການອ່ານຄົບຖ້ວນ ການກວດສອບຄຳຕອບ ແລະ TLS ຂອງປາຍທາງພາຍຫຼັງ CONNECT ສຳເລັດເທົ່ານັ້ນ.
ການເຊື່ອມຕໍ່ Asio TCP socket ກັບຜູ້ຟັງ SOCKS5 ສຳເລັດພຽງຂັ້ນຕອນດຽວ: ການເຊື່ອມຕໍ່ TCP ຫາຜູ້ຟັງນັ້ນ. ມັນບໍ່ໄດ້ຂໍໃຫ້ພຣອກຊີເຊື່ອມຕໍ່ກັບເຊີບເວີສຸດທ້າຍ. ສຳລັບການທົດສອບເປົ້າໝາຍສາທາລະນະທີ່ໄດ້ຮັບອະນຸຍາດ ລາຍຊື່ພຣອກຊີ SOCKS5 ສະເໜີຜູ້ສະໝັກສຳລັບຈຸດປາຍ TCP ທຳອິດນັ້ນ; ຕົວເຊື່ອມຕໍ່ຍັງຕ້ອງເຮັດການແລກປ່ຽນຂ້າງລຸ່ມໃຫ້ສຳເລັດ.
ຫຼັງຈາກນັ້ນ ຕົວເຊື່ອມຕໍ່ SOCKS5 ຕ້ອງເຮັດການແລກປ່ຽນໂປຣໂຕຄໍ:
- ສົ່ງຄຳທັກທາຍສະບັບທີ 5 ທີ່ລະບຸວິທີການພິສູດຕົວຕົນທີ່ລູກຂ່າຍຮອງຮັບ.
- ອ່ານວິທີການທີ່ຖືກເລືອກ ແລະ ເຮັດການແລກປ່ຽນການພິສູດຕົວຕົນຂອງມັນເມື່ອຈຳເປັນ.
- ສົ່ງ CONNECT ພ້ອມປະເພດທີ່ຢູ່ປາຍທາງ ທີ່ຢູ່ ແລະ ພອດຕາມລຳດັບໄບຕ໌ເຄືອຂ່າຍ.
- ອ່ານຄຳຕອບ ກວດສອບສະບັບ ແລະ ລະຫັດຜົນ ແລ້ວບໍລິໂພກທີ່ຢູ່ຜູກມັດ ແລະ ພອດທີ່ມີຄວາມຍາວປ່ຽນແປງໃຫ້ຄົບ.
- ສົ່ງສະຕຣີມທີ່ສ້າງຂຶ້ນໃຫ້ໂປຣໂຕຄໍຂອງແອັບພລິເຄຊັນ.
ຕົວຊ່ວຍຊື່ socks5::async_proxy_connect ເປັນຂອງການຈັດຕັ້ງ SOCKS ທີ່ໃຫ້ຕົວຊ່ວຍນັ້ນ. ການເອີ້ນຊື່ມັນຢູ່ຂ້າງ boost::asio ບໍ່ໄດ້ເຮັດໃຫ້ມັນເປັນສ່ວນໜຶ່ງຂອງອິນເຕີເຟສ TCP socket ຂອງ Asio.
ການອ່ານ TCP ອາດສົ່ງຄືນພຽງບາງສ່ວນຂອງຄຳຕອບ. ປະກອບການອ່ານໃຫ້ຄົບຈຳນວນໄບຕ໌ທີ່ຕ້ອງການ ແລ້ວເລືອກຄວາມຍາວທີ່ເຫຼືອຈາກຊ່ອງປະເພດທີ່ຢູ່. ຢ່າສົມມຸດວ່າທຸກຄຳຕອບຂອງເຊີບເວີມີຮູບແບບ IPv4 ຄົງທີ່.
ສຳລັບ HTTPS ໃຫ້ເຮັດການຈັບມື TLS ຂອງປາຍທາງຫຼັງຈາກ SOCKS CONNECT ສຳເລັດ ໂດຍຮັກສາ SNI ແລະ ການກວດສອບຊື່ໂຮສຂອງປາຍທາງ. ຄຳຕອບພຣອກຊີທີ່ສຳເລັດພຽງຢ່າງດຽວບໍ່ໄດ້ພິສູດຕົວຕົນເວັບໄຊ.
ຮັກສາການຍົກເລີກ ແລະ ກຳນົດເວລາໄວ້ຕະຫຼອດລຳດັບການຕັ້ງຄ່າ. ຖ້າເວລາສ້າງການເຊື່ອມຕໍ່ TCP ໝົດ ການແລກປ່ຽນຄຳທັກທາຍ ການພິສູດຕົວຕົນ ແລະ CONNECT ຕໍ່ມາຈະບໍ່ມີຂີດຈຳກັດ.