માન્ય પ્રોક્સી સરનામું હાથે લખેલા SOCKS સંદેશને માન્ય બનાવતું નથી. C અથવા C++ struct મોકલવાથી પ્રોટોકોલે ક્યારેય માંગ્યું ન હોય તેવું પેડિંગ કે હોસ્ટ-ક્રમના પૂર્ણાંકો મોકલાઈ શકે છે.

SOCKS5 ડોમેન-નામ CONNECT વિનંતી માટે, પદ્ધતિ વાટાઘાટ અને પસંદ કરેલી કોઈપણ પ્રમાણીકરણ પછી આ ક્રમને સ્પષ્ટ રીતે સીરીયલાઇઝ કરો:

  1. આવૃત્તિ, આદેશ, આરક્ષિત બાઇટ અને સરનામાનો પ્રકાર
  2. ડોમેન લંબાઈ અને ડોમેન બાઇટ્સ
  3. નેટવર્ક બાઇટ ક્રમમાં બે-બાઇટ ગંતવ્ય પોર્ટ

સરનામાની લંબાઈ SOCKS આવૃત્તિ અને સરનામાના પ્રકાર પર આધાર રાખે છે. નિશ્ચિત પહોળાઈના સંખ્યાત્મક ફીલ્ડને તેમની નિર્દિષ્ટ રજૂઆત જોઈએ; ડોમેન શબ્દમાળાઓનું પોતાનું લંબાઈ એન્કોડિંગ હોય છે. C શબ્દમાળા સમાપ્તિકર્તા વાયર સંદેશમાં શૂન્ય ઉમેરવાની સામાન્ય સૂચના નથી.

અમલીકરણ ટૂંકો રસ્તોતપાસવાની સમસ્યા
8-બિટ પોઇન્ટર દ્વારા 32-બિટ મૂલ્ય સોંપવુંતે ચારેય બાઇટ ઉત્સર્જિત કરતું નથી
બફરને મોટા પૂર્ણાંક પોઇન્ટરમાં કાસ્ટ કરવુંસંરેખણ અને બાઇટ ક્રમ હજી સંભાળવા પડશે
ધારવું કે એક વાંચન કે લેખન એક સંદેશ છેTCP પ્રોટોકોલ ક્રમનો ફક્ત એક ભાગ સ્થાનાંતરિત કરી શકે છે

દરેક ફીલ્ડને ઇચ્છિત ગંતવ્ય સાથે સરખાવો અને આંશિક I/O સંભાળો. બે બાઇટ મળવાથી સાબિત થતું નથી કે સંપૂર્ણ જવાબ આવી ગયો. આ સીમાઓ તપાસવાથી વિકૃત વિનંતીને યોગ્ય રીતે વર્ણવાયેલા જોડાણને નકારતા સર્વરથી અલગ કરી શકાય છે.

સંબંધિત લેખો