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 ஆக அமைக்கவும்.