Í Java er byte táknað. Þess vegna getur oktett sem hefur strengjagildið 217 birst sem neikvætt gildi þegar það er prentað beint úr byte-fylki. Það þýðir ekki að proxyið hafi sent ógilt neikvætt IP-vistfang.

Umbreyttu geymda gildinu í ótáknaða heiltölu, til dæmis með Byte.toUnsignedInt(value), eða notaðu DataInputStream.readUnsignedByte() þegar þú lest sviðið. Fyrir port í netröð skaltu lesa skjalfestu tveggja bæta gildið í stað þess að meðhöndla hvort sem er bætið sem táknaða tugabrotstölu.

Aðskildu einnig framsetningu frá rammagjörð. Lestur úr sokk ketur getur skilað færri bætum en beðið var um. Lestu allt sviðið og túlkaðu það síðan samkvæmt SOCKS-útgáfu og tegund vistfangs. SOCKS5-vistföng geta innihaldið IPv4-vistfang, IPv6-vistfang eða lénsheiti með lengdarforskeyti; föst forsendan um fjögur bæti nær aðeins yfir eina af þessum myndum.

Að leiðrétta oktett sem lítur neikvætt út leysir birtuvandann. Það lagar ekki þáttara sem byrjaði að lesa á röngum hliðrun eða stöðvaðist mitt í vistfanginu.

Tengdir greinar