Asio پروكسىغا ئۇلانغاندىن كېيىن SOCKS5 ئالماشتۇرۇشنى تەلەپ قىلىدۇ
SOCKS5 نى Asio سوكېتى ئۈستىدىكى پروتوكول ھالەت ماشىنىسى دەپ قاراڭ: تولۇق ئوقۇش، دەلىللەنگەن جاۋاب ۋە مەنزىل TLS پەقەت CONNECT مۇۋەپپەقىيەتلىك بولغاندىن كېيىن.
Asio TCP سوكېتىنى SOCKS5 تىڭشىغۇچىغا ئۇلاش پەقەت بىر باسقۇچنى تاماملايدۇ: شۇ تىڭشىغۇچىغا بولغان TCP ئۇلىنىشى. ئۇ پروكسىدىن ئاخىرقى مۇلازىمېتىرغا ئۇلىنىشنى تەلەپ قىلمايدۇ. رۇخسەت قىلىنغان ئاممىۋى نىشان سىنىقى ئۈچۈن SOCKS5 پروكسى تىزىملىكى شۇ تۇنجى TCP ئاخىرقى نۇقتىسىغا نامزاتلارنى تەمىنلەيدۇ؛ ئۇلىغۇچ يەنىلا تۆۋەندىكى ئالماشتۇرۇشنى تاماملاشى كېرەك.
ئاندىن SOCKS5 ئۇلىغۇچى پروتوكول ئالماشتۇرۇشنى ئىجرا قىلىشى كېرەك:
- خېرىدار قوللايدىغان دەلىللەش ئۇسۇللىرىنى تىزىپ بەرگەن 5-نەشرىدىكى سالامنى ئەۋەتىڭ.
- تاللانغان ئۇسۇلنى ئوقۇڭ ۋە زۆرۈر بولغاندا ئۇنىڭ دەلىللەش ئالماشتۇرۇشىنى ئېلىپ بېرىڭ.
- CONNECT نى مەنزىلنىڭ ئادرېس تۈرى، ئادرېسى ۋە تور بايت تەرتىپىدىكى پورتى بىلەن ئەۋەتىڭ.
- جاۋابنى ئوقۇڭ، نەشرى ۋە نەتىجە كودىنى تەكشۈرۈڭ، ئاندىن ئۆزگىرىدىغان ئۇزۇنلۇقتىكى باغلانغان ئادرېس ۋە پورتنى تولۇق ئىشلىتىڭ.
- قۇرۇلغان ئېقىمنى پروگراممىنىڭ پروتوكولىغا تاپشۇرۇڭ.
socks5::async_proxy_connect دەپ ئاتىلىدىغان ياردەمچى شۇ ياردەمچىنى تەمىنلەيدىغان SOCKS ئىجرا قىلىشىغا تەۋە. ئۇنى boost::asio نىڭ يېنىدا ئاتاش ئۇنى Asio نىڭ TCP سوكېت كۆرۈنمە يۈزىنىڭ بىر قىسمى قىلمايدۇ.
TCP ئوقۇش جاۋابنىڭ پەقەت بىر قىسمىنى قايتۇرالايدۇ. كېرەكلىك بايت سانلىرى ئۈچۈن ئوقۇشلارنى بىرلەشتۈرۈڭ، ئاندىن قالغان ئۇزۇنلۇقنى ئادرېس تۈرى رايونىدىن تاللاڭ. ھەر بىر مۇلازىمېتىر جاۋابىنىڭ مۇقىم IPv4 تەرتىپى بار دەپ ئويلىماڭ.
HTTPS ئۈچۈن SOCKS CONNECT مۇۋەپپەقىيەتلىك بولغاندىن كېيىن مەنزىلنىڭ TLS قول ئېلىشىشنى ئېلىپ بېرىڭ، مەنزىلنىڭ SNI ۋە خوست ئاتىنى تەكشۈرۈشنى ساقلاپ. پەقەت مۇۋەپپەقىيەتلىك پروكسى جاۋابى تور بېكەتنى دەلىللىمەيدۇ.
پۈتۈن تەڭشەش تەرتىپىدە بىكار قىلىش ۋە ۋاقىت چېكىنى ساقلاڭ. ئەگەر TCP ئۇلىنىشى قۇرۇش ۋاقتى توشسا، كېيىنكى سالام، دەلىللەش ۋە CONNECT ئالماشتۇرۇشلىرى چەكسىز قېلىپ قالىدۇ.