Negativna števila v naslovu SOCKS Java niso negativni IP-ji
Polja naslova SOCKS berite kot nepredznačene vrednosti protokola, ko jih razčlenjujete z Java byte API.
V Javi je byte predznačen. Zato se oktet s vrednostjo 217 na žici lahko pri neposrednem izpisu iz polja bajtov prikaže kot negativna vrednost. To ne pomeni, da je proxy poslal neveljaven negativen naslov IP.
Pretvorite shranjeno vrednost v nepredznačeno celo število, na primer z Byte.toUnsignedInt(value), ali med branjem polja uporabite DataInputStream.readUnsignedByte(). Za vrata v omrežnem vrstnem redu preberite dokumentirano dvobajtno vrednost, namesto da bi kateri koli bajt obravnavali kot predznačeno decimalno število.
Ločite tudi predstavitev od uokvirjanja. Branje iz vtičnice lahko vrne manj bajtov, kot je bilo zahtevanih. Preberite celotno polje in ga nato razložite glede na različico SOCKS in vrsto naslova. Naslovi SOCKS5 lahko vsebujejo naslov IPv4, naslov IPv6 ali ime domene s predpono dolžine; fiksna predpostavka štirih bajtov pokriva le eno od teh oblik.
Popravljanje okteta, ki je videti negativen, reši težavo prikaza. Ne popravi pa razčlenjevalnika, ki je začel brati pri napačnem odmiku ali se ustavil na sredini naslova.