Java SOCKS ලිපිනයේ සෘණ සංඛ්යා සෘණ IP නොවේ
Java byte API සමඟ SOCKS ලිපින ක්ෂේත්ර විග්රහ කරන විට ඒවා unsigned ප්රොටොකෝල අගයන් ලෙස කියවන්න.
Java තුළ byte signed වේ. එබැවින් වයර් අගය 217 වන octet එකක් byte array එකකින් කෙළින්ම මුද්රණය කරන විට සෘණ අගයක් ලෙස පෙනිය හැක. මින් අදහස් වන්නේ proxy එක වලංගු නොවන සෘණ IP ලිපිනයක් යැව්වා යන්න නොවේ.
ගබඩා කළ අගය unsigned පූර්ණ සංඛ්යාවකට පරිවර්තනය කරන්න, උදාහරණයක් ලෙස Byte.toUnsignedInt(value) සමඟ, නැතහොත් ක්ෂේත්රය කියවන විට DataInputStream.readUnsignedByte() භාවිත කරන්න. ජාල අනුපිළිවෙලෙහි ඇති පෝටයක් සඳහා ඕනෑම byte එකක් signed දශම සංඛ්යාවක් ලෙස සැලකීම වෙනුවට ලේඛනගත two-byte අගය කියවන්න.
නිරූපණය frame කිරීමෙන් වෙන් කරන්න. socket කියවීමක් ඉල්ලා ඇති ප්රමාණයට වඩා අඩු byte ආපසු දිය හැක. සම්පූර්ණ ක්ෂේත්රය කියවා, පසුව SOCKS අනුවාදය සහ ලිපින වර්ගය අනුව අර්ථ දක්වන්න. SOCKS5 ලිපිනවල IPv4 ලිපිනයක්, IPv6 ලිපිනයක් හෝ දිග-පූර්වාක්ෂර සහිත වසම් නාමයක් තිබිය හැක; ස්ථිර byte හතරක උපකල්පනය එම ආකාරවලින් එකක් පමණක් ආවරණය කරයි.
සෘණ ලෙස පෙනෙන octet එකක් නිවැරදි කිරීම මුද්රණ දෝෂය විසඳයි. නමුත් වැරදි offset එකකින් කියවීම ආරම්භ කළ හෝ ලිපිනය මැදින් නතර වූ parser එකක් එය නිවැරදි නොකරයි.