Socket.Connect() bir SOCKS serverinə yönəltmək həmin serverə TCP bağlantısı açır. Sonrakı baytlar hələ də SOCKS danışmalıdır. Tətbiqinizin protokolunu dərhal göndərmək serveri başqa söhbət gözləməkdə qoyur.

SOCKS5 ilə bağlantı qurulması metod danışıqlarını, seçilmiş autentifikasiya mübadiləsini və təyinatı göstərən sorğunu əhatə edir. Yalnız uğurlu cavab tətbiqin baytları üçün yolu açır. Bu mərhələlər RFC 1928 sənədində müəyyən edilib.

Danışıqları bağlantı qatında saxlayın

Öz TCP protokolu olan tətbiq qurulmuş axın qaytaran proksi-bilikli birləşdirici istifadə edə bilər. Tətbiqin qalan hissəsi sonra həmin axın vasitəsilə oxuyur və yazır. Birləşdirici qismən oxumaları, dəyişən uzunluqlu ünvanları, autentifikasiya uğursuzluqlarını və danışıqlar üçün son müddəti nəzərə almalıdır.

Bir sabit ölçülü bufer oxuyub uğuru fərz edən əl ilə yazılmış tətbiq kövrəkdir. TCP SOCKS mesajlarının sərhədlərini qorumur. Tətbiq protokoluna başlamazdan əvvəl ünvan növünün təsvir etdiyi tam cavabı oxuyun. .NET 7+ CONNECT cavab oxuyucusu həmin addımı göstərir.

Əgər saxlanılan bir kitabxana artıq bu bağlantı qatını təqdim edirsə, onun dəstəklədiyi SOCKS versiyalarını, autentifikasiya metodlarını və hədəf freymvorkunu yoxlayın. Onillik forum linki cari uyğunluğun sübutu deyil, araşdırma üçün başlanğıc nöqtəsidir.

HTTP müştəri konfiqurasiyasının ayrı əhatə dairəsi var

HTTP müştərisinin proksi parametri həmin HTTP müştərini konfiqurasiya edir. Prosesdəki hər xam soketi dəyişdirmir. Socket API şəbəkə son nöqtəsini qəbul edir və yüksək səviyyəli danışıqları çağırana buraxır.

Şifrələnmiş tətbiq protokolu üçün TLS əl sıxışmasını proksi tuneli qurulduqdan sonra yerinə yetirin. Həmin mərhələdə nəzərdə tutulan təyinat kimliyini yoxlayın. Proksi autentifikasiyası və təyinat autentifikasiyası eyni əsas axından istifadə etsələr də ayrı qalır.

Əlaqəli məqalələr