C struct එකක් නරක SOCKS ඉල්ලීමක් ඇති කළ හැක්කේ ඇයි
සම්පාදකයාගේ පිරිසැලසුම wire ආකෘතිය ලෙස නොසලකා පැහැදිලි ක්ෂේත්ර පළල, බයිට් අනුපිළිවෙල සහ stream I/O පරීක්ෂා කරන්න.
වලංගු ප්රොක්සි ලිපිනයක් අතින් ලියූ SOCKS පණිවිඩයක් වලංගු නොකරයි. C හෝ C++ struct යැවීමෙන් ප්රොටොකොලය කිසිදා ඉල්ලා නොසිටි padding හෝ host අනුපිළිවෙලෙහි පූර්ණ සංඛ්යා යැවිය හැක.
SOCKS5 ඩොමේන්-නාම CONNECT ඉල්ලීමක් සඳහා, ක්රම සාකච්ඡාව සහ තෝරාගත් ඕනෑම සත්යාපනයකින් පසු මෙම අනුපිළිවෙල පැහැදිලිව අනුක්රමික කරන්න:
- අනුවාදය, විධානය, වෙන් කළ බයිටය සහ ලිපින වර්ගය
- ඩොමේන් දිග සහ ඩොමේන් බයිට්
- ජාල බයිට් අනුපිළිවෙලෙහි බයිට දෙකක ගමනාන්ත තොට
ලිපින දිග SOCKS අනුවාදය සහ ලිපින වර්ගය මත රඳා පවතී. ස්ථාවර පළලැති සංඛ්යාත්මක ක්ෂේත්රවලට ඒවායේ නිර්දිෂ්ට නිරූපණය අවශ්යය; ඩොමේන් තන්තුවලට තමන්ගේම දිග කේතනයක් ඇත. C තන්තු අවසන් කරන ලකුණ wire පණිවිඩයට බිංදුවක් එකතු කිරීමේ පොදු උපදෙසක් නොවේ.
| ක්රියාත්මක කිරීමේ කෙටි මාර්ගය | පරීක්ෂා කළ යුතු ගැටලුව |
|---|---|
| 8-බිට් දර්ශකයක් හරහා 32-බිට් අගයක් පැවරීම | එය බයිට හතරම නිකුත් නොකරයි |
| buffer එකක් විශාල පූර්ණ සංඛ්යා දර්ශකයකට වෙනස් කිරීම | පෙළගැස්ම සහ බයිට් අනුපිළිවෙල තවමත් හැසිරවිය යුතුය |
| එක් කියවීමක් හෝ ලිවීමක් එක් පණිවිඩයක් යැයි උපකල්පනය කිරීම | TCP හට ප්රොටොකොල අනුපිළිවෙලෙන් කොටසක් පමණක් මාරු කළ හැක |
එක් එක් ක්ෂේත්රය අපේක්ෂිත ගමනාන්තය සමඟ සසඳා අර්ධ I/O හසුරුවන්න. බයිට දෙකක් ලැබීමෙන් සම්පූර්ණ පිළිතුර ආවේ යැයි ඔප්පු නොවේ. එම සීමා පරීක්ෂා කිරීමෙන් විකෘත ඉල්ලීමක් නිවැරදිව විස්තර කළ සම්බන්ධතාවය ප්රතික්ෂේප කරන සේවාදායකයෙකුගෙන් වෙන් කළ හැක.