Yn Java is byte tekene. In oktet mei de triedwearde 217 kin dêrom as in negative wearde ferskine as it direkt út in byte-array printe wurdt. Dat betsjut net dat de proxy in ûnjildige negative IP-adres stjoerd hat.

Oersette de bewarre wearde nei in ûntekene hielgetal, bygelyks mei Byte.toUnsignedInt(value), of brûk DataInputStream.readUnsignedByte() by it lêzen fan it fjild. Foar in poarte yn netwurkfolchoarder lês de dokumintearre twa-byte-wearde ynstee fan ien fan de bytes as in tekene desimaal getal te behanneljen.

Skied ek foarstelling fan framing. In socket-lêzing kin minder bytes weromjaan as frege. Lês it folsleine fjild en ynterpretearje it dêrnei neffens de SOCKS-ferzje en it adrestype. SOCKS5-adressen kinne in IPv4-adres, in IPv6-adres of in domeinnamme mei lingteprefix befetsje; de fêste oanname fan fjouwer bytes beslacht mar ien fan dy foarmen.

It reparearjen fan in oktet dat negatyf liket, lost it werjaanprobleem op. It reparearret gjin parser dy't op 'e ferkearde offset begûn is te lêzen of healwei it adres stoppe is.

Relatearre artikelen