ಪ್ರಾಕ್ಸಿಗೆ ಸಂಪರ್ಕಿಸಿದ ನಂತರ Asio ಗೆ SOCKS5 ವಿನಿಮಯ ಬೇಕು
Asio ಸಾಕೆಟ್ ಮೇಲೆ SOCKS5 ಅನ್ನು ಪ್ರೋಟೋಕಾಲ್ ಸ್ಥಿತಿ ಯಂತ್ರವಾಗಿ ಪರಿಗಣಿಸಿ; ಪೂರ್ಣ ಓದುವಿಕೆ, ಪರಿಶೀಲಿಸಿದ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಮತ್ತು CONNECT ಯಶಸ್ವಿಯಾದ ನಂತರವೇ ಗಮ್ಯದ TLS.
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 ವಿನಿಮಯಗಳು ಮಿತಿಯಿಲ್ಲದೆ ಉಳಿಯುತ್ತವೆ.