Səkkiz bayt oxu, sonra SOCKS4 tunelini təhvil ver
Təyinatın salamlamasını udmamaq və mövcud olmayan baytları gözləməmək üçün sabit SOCKS4 cavab sərhədini təhlil edin.
SOCKS4 bağlantı sorğusu uğurla tamamlanır, lakin tətbiq serverin açılış salamlamasını heç vaxt görmür. Baxmalı yerlərdən biri konnektorun ilk oxumasıdır. On altı baytlıq oxuma səkkiz baytlıq SOCKS4 cavabı üçün çox böyükdür.
| Cavab sahəsi | Bayt |
|---|---|
| Cavab versiya sahəsi | 1 |
| Nəticə kodu | 1 |
| Port sahəsi | 2 |
| Ünvan sahəsi | 4 |
Nəticə kodu 0x5a sorğunun təsdiqləndiyini göstərir. SOCKS4a sorğunun host adını necə daşıdığını dəyişir; cavabı on altı bayta çevirmir.
Cavabdan sonra eyni TCP axını təyinat protokolunu daşıyır. Poçt serveri salamlamasını dərhal göndərə bilər. Buna görə on altı mövcud baytı istehlak edən oxuma tam proxy cavabını və həmin salamlamanın ilk səkkiz baytını götürə bilər. Əgər hələ heç nə gəlmirsə, həddindən böyük bloklayan oxuma əvəzində lazımsız gözləmə əlavə edə bilər.
Dəqiq uzunluq parserin məsuliyyətidir
Bir dəfə səkkiz bayt istəmək səkkiz baytın gəldiyinə dair kifayət qədər sübut deyil. Axın oxumaları daha az qaytara bilər. Cavabın uzunluğunu bir son tarix daxilində dəqiq toplayın, bağlanmış və ya uğursuz axında dayanın, cavabı yoxlayın və sonrakı baytları tətbiq üçün saxlayın.
Konnektor daha böyük buferlənmiş oxuma istifadə edirsə, sərhəddən sonrakı hər şeyi qoruyun və növbəti istehlakçıya ötürün. Artığı atmaq fərqli oxuma ölçüsü ilə eyni məlumat itkisidir.
SOCKS5 öz parserini tələb edir. Cavab ünvanının uzunluğu ünvan növünə görə fərqli ola bilər. Hər proxy oxumasını sabit səkkiz baytlıq oxuma ilə əvəz etmək bir protokolu düzəldib digərini sındırardı.