پروکسی SOCKS5 UDP در Qt را پیش از اتصال سوکت تنظیم کنید
از setProxy روی QUdpSocket موجود استفاده کنید و سپس آدرس و پورت واقعی متصلشده را بخوانید، نه اینکه فرض کنید پورت درخواستی حفظ شده است.
QNetworkProxy proxy(
QNetworkProxy::Socks5Proxy,
QStringLiteral("proxy.example.net"),
1080);
udpSocket->setProxy(proxy);این را روی QUdpSocket موجود برنامه پیش از bind یا connect اعمال کنید. سرور SOCKS باید UDP association را پیادهسازی کند؛ پرچمهای توانایی پروکسی و مرور موفق TCP آن عملیات را آزمایش نمیکنند. برای یک آزمون عمومی UDP مجاز، فهرست پروکسی SOCKS5 آدرسهای نامزد ارائه میدهد، اما UDP association و دسترسی به مقصد هر نامزد باید جداگانه بررسی شود.
| عملیات | ملاحظه SOCKS5 UDP که Qt مستند کرده است |
|---|---|
| bind | میتواند به پایان مهلت برسد |
| درخواست پورت محلی غیرصفر | تضمین نمیکند که آن پورت استفاده شود |
| بررسی نتیجه | برای اطلاعات واقعی localPort و localAddress را بخوانید |
رله یک مسیر UDP اضافه میکند که در آن افت بسته هنوز ممکن است. مقادیر حساب پروکسی از ویژگیهای user/password شیء استفاده میکنند.
تغییر پروکسی نمیتواند سوکت متصل را جابهجا کند. آزمونهای localhost را هم با دقت تفسیر کنید: Qt برای آدرسهای localhost مستندش در connectToHost، bind یا listen از پروکسیهای شبکه عبور میکند.