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əsiBayt
Cavab versiya sahəsi1
Nəticə kodu1
Port sahəsi2
Ünvan sahəsi4

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ı.

Əlaqəli məqalələr