NetworkStream.DataAvailable == false යනු ක්ෂණිකව කියවීමට බයිට් සූදානම් නැති බවයි. එයින් අදහස් වන්නේ HTTP ප්‍රතිචාරයක් සම්පූර්ණ වී ඇති බව නොවේ. එහි නතර වන ලූපයක් පැකට් අතර පරතරයක දී සම්පූර්ණයෙන්ම සාමාන්‍ය SOCKS බාගැනීමක් කපා දැමිය හැකිය.

SOCKS TCP සම්බන්ධතාවය ස්ථාපිත කළ පසුවත් සම්පූර්ණත්ව නියමය ලබා දෙන්නේ HTTP රාමුකරණයයි:

  • Content-Length සහිත බොඩිය ප්‍රකාශිත අන්තර්ගත බයිට් වලින් පසුව අවසන් වේ.
  • Chunked ප්‍රතිචාරයකට එහි අවසන් chunk සහ අදාළ trailer අවශ්‍ය වේ.
  • සම්බන්ධතාවයෙන් සීමා වූ ප්‍රතිචාරය සම්බන්ධතාවය සමඟ අවසන් වේ.
  • සමහර තත්ත්ව සහ HEAD සඳහා වන ප්‍රතිචාරවල බොඩියක් නොමැත.

අදාළ නියමය තීරණය කිරීමට තත්ත්වය සහ ශීර්ෂ කියවන්න. වැසීම ගැන පමණක් බලා සිටීම සාමාන්‍ය විසඳුමක් නොවේ, මන්ද සම්පූර්ණ HTTP ප්‍රතිචාරයක් සම්බන්ධතාවය විවෘතව තැබිය හැකිය. එක් බෆරයක ධාරිතාව ද ප්‍රතිචාරයේ දිගට සමාන ලෙසම අදාළ නොවේ.

තෝරාගත් ප්‍රොක්සි ප්‍රවාහනයට HTTP සේවාලාභියාගේ රාමුකරණ ක්‍රියාත්මක කිරීම සහාය දක්වන විට එය භාවිතා කරන්න. ගැළපෙන නවීන .NET ධාවන කාලයක HttpClient හි මූලික SOCKS සහාය සලකා බලන්න. අමු ක්‍රියාත්මක කිරීමක් අර්ධ ශීර්ෂ සහ බොඩි කියවීම් හරහා විග්‍රහ තත්ත්වය තබා ගත යුතු අතර සාර්ථක අවසානය අවලංගු කිරීම, කාලය ඉකුත්වීම සහ අනපේක්ෂිත EOF වලින් වෙන්කර හඳුනා ගත යුතුය. හිස් නොවන කියවීම් ඉල්ලීමක ශූන්‍ය බයිට් කියවීම යනු ප්‍රවාහය අවසන් වී ඇති බවයි; මෙය මේ මොහොතේ පෝලිමේ බයිට් නොමැති වීමෙන් වෙනස් වේ.

ප්‍රොක්සියට කාල පරතරයන් පෙනෙන ලෙස කළ හැකි නමුත් එය හිස් ලැබීම් පෝලිම පණිවිඩයේ අවසාන සලකුණ බවට නොහරවයි.

අදාළ ලිපි