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 ලෙස සකසන්න.