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 గా సెట్ చేయండి.