Java se byte is geteken. 'n Oktoet met 'n draadwaarde van 217 kan dus as 'n negatiewe waarde verskyn wanneer dit direk uit 'n byte-skikking gedruk word. Dit beteken nie dat die instaanbediener 'n ongeldige negatiewe IP-adres gestuur het nie.

Skakel die gestoorde waarde om na 'n ongetekende heelgetal, byvoorbeeld met Byte.toUnsignedInt(value), of gebruik DataInputStream.readUnsignedByte() terwyl jy die veld lees. Lees vir 'n poort in netwerkorde die gedokumenteerde tweebytewaarde eerder as om enige van die twee grepe as 'n getekende desimale getal te behandel.

Skei ook voorstelling van raamwerk. 'n Sokklees kan minder grepe teruggee as wat gevra is. Lees die volledige veld en interpreteer dit dan volgens die SOCKS-weergawe en die adrestipe. SOCKS5-adresse kan 'n IPv4-adres, 'n IPv6-adres of 'n domeinnaam met 'n lengtevoorvoegsel bevat; 'n vaste viergrepe-aanname dek net een van hierdie vorme.

Om 'n negatief-voorkomende oktoet reg te stel, los die vertoonprobleem op. Dit maak nie 'n ontleedder reg wat op die verkeerde posisie begin lees of halfpad deur die adres opgehou het nie.

Verwante artikels