Java ਵਿੱਚ byte signed ਹੈ। ਇਸ ਲਈ ਜਿਸ octet ਦਾ ਵਾਇਰ ਮੁੱਲ 217 ਹੈ, ਉਹ byte ਐਰੇ ਤੋਂ ਸਿੱਧਾ ਛਾਪਣ ’ਤੇ ਰਿਣਾਤਮਕ ਮੁੱਲ ਵਜੋਂ ਦਿਖ ਸਕਦਾ ਹੈ। ਇਸ ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਕਿ ਪ੍ਰੌਕਸੀ ਨੇ ਕੋਈ ਗੈਰ-ਵੈਧ ਰਿਣਾਤਮਕ IP ਪਤਾ ਭੇਜਿਆ ਹੈ।

ਸੰਗ੍ਰਹਿਤ ਮੁੱਲ ਨੂੰ unsigned ਪੂਰਨ ਅੰਕ ਵਿੱਚ ਬਦਲੋ, ਉਦਾਹਰਨ ਲਈ Byte.toUnsignedInt(value) ਨਾਲ, ਜਾਂ ਖੇਤਰ ਪੜ੍ਹਦੇ ਸਮੇਂ DataInputStream.readUnsignedByte() ਵਰਤੋ। ਨੈੱਟਵਰਕ ਕ੍ਰਮ ਵਾਲੇ ਪੋਰਟ ਲਈ, ਕਿਸੇ ਵੀ byte ਨੂੰ signed ਦਸ਼ਮਲਵ ਸੰਖਿਆ ਮੰਨਣ ਦੀ ਥਾਂ ਦਸਤਾਵੇਜ਼ੀ ਦੋ-byte ਮੁੱਲ ਪੜ੍ਹੋ।

ਪੇਸ਼ਕਾਰੀ ਨੂੰ ਫਰੇਮਿੰਗ ਤੋਂ ਵੱਖ ਰੱਖੋ। ਸਾਕਟ ਪੜ੍ਹਤ ਮੰਗੇ ਨਾਲੋਂ ਘੱਟ byte ਵਾਪਸ ਕਰ ਸਕਦੀ ਹੈ। ਪੂਰਾ ਖੇਤਰ ਪੜ੍ਹੋ, ਫਿਰ SOCKS ਸੰਸਕਰਣ ਅਤੇ ਪਤੇ ਦੀ ਕਿਸਮ ਅਨੁਸਾਰ ਵਿਆਖਿਆ ਕਰੋ। SOCKS5 ਪਤਿਆਂ ਵਿੱਚ IPv4 ਪਤਾ, IPv6 ਪਤਾ ਜਾਂ ਲੰਬਾਈ-ਉਪਸਰਗ ਵਾਲਾ ਡੋਮੇਨ ਨਾਮ ਹੋ ਸਕਦਾ ਹੈ; ਨਿਸ਼ਚਿਤ ਚਾਰ-byte ਧਾਰਨਾ ਇਹਨਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਰੂਪ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।

ਰਿਣਾਤਮਕ ਦਿਖਦੇ octet ਨੂੰ ਠੀਕ ਕਰਨਾ ਪ੍ਰਦਰਸ਼ਨ ਸਮੱਸਿਆ ਹੱਲ ਕਰਦਾ ਹੈ। ਪਰ ਇਹ ਉਸ parser ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰਦਾ ਜੋ ਗਲਤ ਆਫਸੈੱਟ ਤੋਂ ਪੜ੍ਹਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਜਾਂ ਪਤੇ ਦੇ ਵਿਚਕਾਰ ਰੁਕ ਗਿਆ।

ਸੰਬੰਧਿਤ ਲੇਖ