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 সেট করুন।