NetworkStream.DataAvailable == false دەرھال ئوقۇشقا تەييار بايت يوق دېگەنلىك. ئۇ HTTP ئىنكاسىنىڭ تاماملانغانلىقىنى بىلدۈرمەيدۇ. شۇ يەردە توختايدىغان بىر ھالقا بولاقلار ئارىسىدىكى ئارىلىقتا پۈتۈنلەي نورمال SOCKS چۈشۈرۈشىنى كېسىپ قويۇشى مۇمكىن.

SOCKS TCP ئۇلىنىشنى قۇرغاندىن كېيىنمۇ تاماملاش قائىدىسىنى HTTP رامكىسى بېرىدۇ:

  • Content-Length تەنچىسى ئېلان قىلىنغان مەزمۇن بايتلىرىدىن كېيىن ئاخىرلىشىدۇ.
  • Chunked ئىنكاسقا ئاخىرقى chunk ۋە مۇناسىۋەتلىك trailer كېرەك.
  • ئۇلىنىش بىلەن چەكلەنگەن ئىنكاس ئۇلىنىش بىلەن بىللە ئاخىرلىشىدۇ.
  • بەزى ھالەتلەر ۋە HEAD ئىنكاسلىرىنىڭ تەنچىسى يوق.

قوللىنىلىدىغان قائىدىنى بەلگىلەش ئۈچۈن ھالەت ۋە ماۋزۇلارنى ئوقۇڭ. پەقەت تاقىلىشنى كۈتۈش ئومۇمىي ھەل ئەمەس، چۈنكى تولۇق HTTP ئىنكاسى ئۇلىنىشنى ئوچۇق قالدۇرۇشى مۇمكىن. بىر بۇفېرنىڭ سىغىمىمۇ ئىنكاس ئۇزۇنلۇقى بىلەن مۇناسىۋەتسىز.

HTTP خېرىدارىنىڭ رامكا ئىجراسىنى تاللانغان proxy توشۇشىنى قوللىغاندا ئىشلىتىڭ. ماس كېلىدىغان زامانىۋى .NET ئىجرا مۇھىتىدا HttpClient نىڭ يەرلىك SOCKS قوللىشىنى ئويلىنىڭ. خام ئىجرا قىسمىي ماۋزۇ ۋە تەنچە ئوقۇشلار ئارىسىدا تەھلىل ھالىتىنى ساقلىشى ھەمدە مۇۋەپپەقىيەتلىك تاماملاشنى بىكار قىلىش، ۋاقىت ئۆتۈش ۋە كۈتۈلمىگەن EOF دىن ئايرىشى كېرەك. قۇرۇق بولمىغان ئوقۇش تەلىپىدە نۆل بايت ئوقۇلۇشى ئېقىمنىڭ ئاخىرلاشقانلىقىنى بىلدۈرىدۇ؛ بۇ ھازىر تەرەپتە بايت يوقلۇقىدىن پەرقلىنىدۇ.

Proxy ۋاقىت پەرقلىرىنى كۆرۈنەرلىك قىلالايدۇ، ئەمما قۇرۇق قوبۇل قىلىش تەرىپىنى ئۇچۇر ئاخىرلىشىش بەلگىسىگە ئايلاندۇرمايدۇ.

مۇناسىۋەتلىك ماقالىلەر