ការភ្ជាប់ Asio TCP socket ទៅអ្នកស្តាប់ SOCKS5 បញ្ចប់តែជំហានមួយ៖ ការភ្ជាប់ TCP ទៅអ្នកស្តាប់នោះ។ វាមិនស្នើឲ្យប្រុកស៊ីភ្ជាប់ទៅម៉ាស៊ីនមេចុងក្រោយទេ។ សម្រាប់ការសាកល្បងគោលដៅសាធារណៈដែលបានអនុញ្ញាត បញ្ជីប្រុកស៊ី SOCKS5 ផ្តល់បេក្ខជនសម្រាប់ចំណុចបញ្ចប់ TCP ដំបូងនោះ។ អ្នកភ្ជាប់នៅតែត្រូវបញ្ចប់ការផ្លាស់ប្តូរខាងក្រោម។

បន្ទាប់មកអ្នកភ្ជាប់ SOCKS5 ត្រូវដំណើរការការផ្លាស់ប្តូរពិធីការ៖

  1. ផ្ញើការស្វាគមន៍កំណែ 5 ដែលរាយវិធីសាស្ត្រផ្ទៀងផ្ទាត់ដែលអតិថិជនគាំទ្រ។
  2. អានវិធីសាស្ត្រដែលបានជ្រើស ហើយធ្វើការផ្លាស់ប្តូរផ្ទៀងផ្ទាត់របស់វានៅពេលចាំបាច់។
  3. ផ្ញើ CONNECT ជាមួយប្រភេទអាសយដ្ឋានគោលដៅ អាសយដ្ឋាន និងច្រកតាមលំដាប់បៃបណ្តាញ។
  4. អានការឆ្លើយតប ពិនិត្យកំណែ និងកូដលទ្ធផល ហើយប្រើអាសយដ្ឋាន និងច្រកដែលចងពេញលេញដែលមានប្រវែងអថេរ។
  5. ប្រគល់ស្ទ្រីមដែលបានបង្កើតទៅពិធីការរបស់កម្មវិធី។

ជំនួយការឈ្មោះ socks5::async_proxy_connect ជារបស់ការអនុវត្ត SOCKS ដែលផ្តល់ជំនួយការនោះ។ ការដាក់ឈ្មោះវានៅក្បែរ boost::asio មិនធ្វើឲ្យវាក្លាយជាផ្នែកនៃចំណុចប្រទាក់ TCP socket របស់ Asio ទេ។

ការអាន TCP អាចត្រឡប់តែផ្នែកមួយនៃការឆ្លើយតប។ ផ្សំការអានសម្រាប់ចំនួនបៃដែលត្រូវការ បន្ទាប់មកជ្រើសប្រវែងនៅសល់ពីវាលប្រភេទអាសយដ្ឋាន។ កុំសន្មតថាការឆ្លើយតបម៉ាស៊ីនមេគ្រប់វាមានប្លង់ IPv4 ថេរ។

សម្រាប់ HTTPS សូមធ្វើការចាប់ដៃ TLS របស់គោលដៅបន្ទាប់ពី SOCKS CONNECT ជោគជ័យ ដោយរក្សា SNI និងការផ្ទៀងផ្ទាត់ឈ្មោះម៉ាស៊ីនរបស់គោលដៅ។ ការឆ្លើយតបប្រុកស៊ីជោគជ័យតែម្នាក់ឯងមិនផ្ទៀងផ្ទាត់គេហទំព័រទេ។

រក្សាការបោះបង់ និងពេលកំណត់ពេញលំដាប់ការរៀបចំ។ ប្រសិនបើពេលវេលាបង្កើតការភ្ជាប់ TCP ផុតកំណត់ ការផ្លាស់ប្តូរស្វាគមន៍ ការផ្ទៀងផ្ទាត់ និង CONNECT ក្រោយៗនឹងគ្មានដែនកំណត់។

អត្ថបទពាក់ព័ន្ធ