ឧបករណ៍ស្តាប់ SOCKS មូលដ្ឋានពីការតភ្ជាប់ AsyncSSH
បង្កើតការបញ្ជូន TCP បែបថាមវន្តដោយ API forward_socks របស់ AsyncSSH ហើយរក្សាឧបករណ៍ស្តាប់ឱ្យដំណើរការលើ asyncio event loop។
AsyncSSH ផ្តល់ការបញ្ជូន TCP បែបថាមវន្តតាមរយៈ forward_socks()។ កម្មវិធីដែលមាន AsyncSSH រួចហើយអាចបង្កើតឧបករណ៍ស្តាប់ SOCKS មូលដ្ឋានលើការតភ្ជាប់ SSH៖
import asyncio
import asyncssh
async def main():
async with asyncssh.connect(
'jump.example.net', username='operator'
) as connection:
listener = await connection.forward_socks('127.0.0.1', 1080)
await listener.wait_closed()
asyncio.run(main())
ម៉ាស៊ីនមេ SSH និងគណនីគ្រាន់តែជាឧទាហរណ៍។ ការផ្ទៀងផ្ទាត់កូនសោម៉ាស៊ីនធម្មតារបស់ AsyncSSH នៅតែអនុវត្ត។ ម៉ាស៊ីនមេត្រូវអនុញ្ញាតការបញ្ជូន TCP ដែលបានស្នើ។ សម្រាប់សមមូលលើបន្ទាត់ពាក្យបញ្ជា ការបញ្ជូនថាមវន្តមូលដ្ឋានរបស់ OpenSSH ប្រើទិសដៅដូចគ្នាពី SSH ទៅគោលដៅ។
អតិថិជនមូលដ្ឋានអាចប្រើ 127.0.0.1:1080 ជាចំណុចបញ្ចប់ SOCKS របស់ពួកគេឥឡូវនេះ។ រាល់សំណើ SOCKS ផ្តល់គោលដៅរបស់ខ្លួន; ម៉ាស៊ីនមេ SSH បើកការតភ្ជាប់ TCP ចេញដែលត្រូវគ្នា។ កម្មវិធីមិនចាំបាច់ដំណើរការកម្មវិធីទាញយកពីចម្ងាយសម្រាប់ URL នីមួយៗទេ។
ការរង់ចាំរក្សាអនុគមន៍អសមកាលនៅក្នុងវិសាលភាពនៃការតភ្ជាប់។ ការត្រឡប់ភ្លាមៗបន្ទាប់ពីបង្កើតឧបករណ៍ស្តាប់នឹងចាកចេញពីវិសាលភាពនោះ ហើយបិទការតភ្ជាប់ដែលទ្រទ្រង់វា។ កម្មវិធី asyncio ធំជាងអាចរក្សាការតភ្ជាប់នេះបើកចំហ ខណៈដំណើរការកិច្ចការផ្សេងទៀតរបស់ខ្លួនលើ event loop ដូចគ្នា។