Java માં byte signed છે. તેથી વાયર મૂલ્ય 217 ધરાવતું octet સીધું byte એરેમાંથી છાપતી વખતે ઋણ મૂલ્ય તરીકે દેખાઈ શકે છે. એનો અર્થ એ નથી કે પ્રોક્સીએ અમાન્ય ઋણ IP સરનામું મોકલ્યું છે.

સંગ્રહિત મૂલ્યને unsigned પૂર્ણાંકમાં રૂપાંતરિત કરો, ઉદાહરણ તરીકે Byte.toUnsignedInt(value) વડે, અથવા ફીલ્ડ વાંચતી વખતે DataInputStream.readUnsignedByte() વાપરો. નેટવર્ક ક્રમના પોર્ટ માટે, બંનેમાંથી કોઈપણ byteને signed દશાંશ સંખ્યા ગણવાને બદલે દસ્તાવેજીકૃત બે-byte મૂલ્ય વાંચો.

રજૂઆતને ફ્રેમિંગથી અલગ રાખો. સોકેટ વાંચન માંગેલા કરતાં ઓછા byte પરત કરી શકે છે. આખું ફીલ્ડ વાંચો, પછી SOCKS આવૃત્તિ અને સરનામાના પ્રકાર મુજબ તેનું અર્થઘટન કરો. SOCKS5 સરનામાંમાં IPv4 સરનામું, IPv6 સરનામું અથવા લંબાઈ-ઉપસર્ગવાળું ડોમેન નામ હોઈ શકે છે; નિશ્ચિત ચાર-byte ધારણા આમાંથી ફક્ત એક જ સ્વરૂપને આવરે છે.

ઋણ દેખાતું octet સુધારવાથી દર્શનની સમસ્યા ઉકેલાય છે. પરંતુ ખોટા ઓફસેટથી વાંચવાનું શરૂ કરનાર અથવા સરનામાની વચ્ચે અટકી ગયેલા parserને એ ઠીક કરતું નથી.

સંબંધિત લેખો