NetworkStream.DataAvailable באווייזט נישט דעם סוף פון אן HTTP ענטפער
פֿאַרמייד אָפּגעשניטענע HTTP אַראָפּלאָדונגען דורך נוצן מעלדונג־ראַמען אַנשטאָט NetworkStream.DataAvailable ווי די סוף־באַדינגונג.
NetworkStream.DataAvailable == false באַטײַט אַז עס זענען נישטאָ קיין בײטן גרייט צו לייענען תּיכּף. דאָס באַטײַט נישט אַז אַן HTTP ענטפער איז פֿאַרענדיקט. אַ שלייף וואָס שטעלט זיך אָפּ דאָרט קען אָפּשנײַדן אַ גאַנץ נאָרמאַלע SOCKS אַראָפּלאָדונג בעת אַ לאַך צווישן פּאַקעטן.
נאָך דעם וואָס SOCKS שטעלט אויס די TCP פֿאַרבינדונג, גיט די HTTP ראַמע נאָך אַלץ די פֿאַרענדיקונג־כּלל:
- אַ Content-Length קערפּער ענדיקט זיך נאָך די דערקלערטע אינהאַלט־בײטן.
- אַ chunked ענטפער דאַרף איר פֿאַרענדיקנדיקן chunk און די פּאַסיקע trailers.
- אַן ענטפער באַגרענעצט דורך דער פֿאַרבינדונג ענדיקט זיך מיט דער פֿאַרבינדונג.
- עטלעכע סטאַטוסן און ענטפֿערס צו HEAD האָבן נישט קיין קערפּער.
לייענט דעם סטאַטוס און די קעפּלעך צו באַשטימען די פּאַסיקע כּלל. צו וואַרטן בלויז אויף פֿאַרמאַכן איז נישט קיין אַלגעמיינע לייזונג, ווײַל אַ פֿאַרענדיקטער HTTP ענטפער קען לאָזן די פֿאַרבינדונג אָפֿן. די פֿאַרמעגלעכקייט פון איין בופֿער איז גלײַך אומפֿאַרבונדן מיט דער לענג פונעם ענטפער.
ניצט די ראַמע־אימפּלעמענטאַציע פונעם HTTP קליענט ווען זי שטיצט דעם אויסגעקליבענעם פּראָקסי־טראַנספּאָרט. אויף אַ פּאַסיקער מאָדערנער .NET לויפֿצײַט באַטראַכט HttpClient'ס אייגענע SOCKS שטיצע. אַ רויע אימפּלעמענטאַציע מוז האַלטן דעם פּאַרסירונג־צושטאַנד איבער טײַל־קעפּלעך און קערפּער־לייענען, און אונטערשיידן אַ דערפֿאָלגרײַכן פֿאַרענדיקונג פון אַנולירונג, צײַט־אָפּלויף און אומגעריכטן EOF. בײַ אַ נישט־ליידיקער לייען־בקשה באַטײַט נול געלייענטע בײטן אַז דער שטראָם איז פֿאַרענדיקט; דאָס איז אַנדערש פון דעם וואָס איצט זענען נישטאָ קיין בײטן אין דער ריי.
דער פּראָקסי קען מאַכן צײַט־לאַכן מערקבאַר, אָבער ער פֿאַרוואַנדלט נישט קיין ליידיקער אָפּנעם־ריי אין אַ צײכן פונעם סוף פון אַ מעלדונג.