Qt ಜೊತೆ SOCKS5 ಮೂಲಕ TCP ಸ್ಟ್ರೀಮ್ ತೆರೆಯುವುದು
ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಸಂಪರ್ಕಿಸುವ ಮೊದಲು QTcpSocket ನ ಸ್ಪಷ್ಟ ಪ್ರಾಕ್ಸಿ ಹೊಂದಿಸಿ, GUI ಅಗತ್ಯವಿಲ್ಲದೆ Qt Network ಬಳಸಿ.
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 ಗೆ ಹೊಂದಿಸಿ.