Java SOCKS முகவரியில் உள்ள எதிர்மறை எண்கள் எதிர்மறை IP அல்ல
Java byte API மூலம் SOCKS முகவரிப் புலங்களைப் பகுப்பாய்வு செய்யும்போது அவற்றைக் குறியில்லா நெறிமுறை மதிப்புகளாகப் படிக்கவும்.
Java இல் byte குறியுள்ளது. எனவே கம்பி மதிப்பு 217 கொண்ட octet ஒன்று byte வரிசையிலிருந்து நேரடியாக அச்சிடப்படும்போது எதிர்மறை மதிப்பாகத் தோன்றலாம். இது ப்ராக்ஸி தவறான எதிர்மறை IP முகவரியை அனுப்பியது என்று பொருள் அல்ல.
சேமிக்கப்பட்ட மதிப்பைக் குறியில்லா முழு எண்ணாக மாற்றவும், எடுத்துக்காட்டாக Byte.toUnsignedInt(value) மூலம், அல்லது புலத்தைப் படிக்கும்போது DataInputStream.readUnsignedByte() பயன்படுத்தவும். பிணைய வரிசையில் உள்ள துறைமுகத்திற்கு, எந்த byte-ஐயும் குறியுள்ள தசம எண்ணாகக் கருதாமல் ஆவணப்படுத்தப்பட்ட இரு-byte மதிப்பைப் படிக்கவும்.
பிரதிநிதித்துவத்தைச் சட்டகமாக்கலில் இருந்து பிரிக்கவும். socket படிப்பு கோரியதை விடக் குறைவான byte-களைத் திருப்பித் தரலாம். முழுப் புலத்தையும் படித்து, பின்னர் SOCKS பதிப்பு மற்றும் முகவரி வகைக்கு ஏற்ப விளக்கவும். SOCKS5 முகவரிகளில் IPv4 முகவரி, IPv6 முகவரி அல்லது நீள முன்னொட்டுடன் கூடிய டொமைன் பெயர் இருக்கலாம்; நிலையான நான்கு-byte அனுமானம் இவற்றில் ஒரு வடிவத்தை மட்டுமே உள்ளடக்கும்.
எதிர்மறையாகத் தோன்றும் octet-ஐச் சரிசெய்வது காட்சிச் சிக்கலைத் தீர்க்கிறது. ஆனால் தவறான இடத்திலிருந்து படிக்கத் தொடங்கிய அல்லது முகவரியின் நடுவில் நின்ற parser-ஐ அது சரிசெய்யாது.