NetworkStream.DataAvailable merkir ikki endan á HTTP-svari
Forða tí at HTTP-niðurtøkur verða styttar við at brúka boðskaparinnramming í staðin fyri NetworkStream.DataAvailable sum endaskilyrði.
NetworkStream.DataAvailable == false merkir, at ongi bytes eru klár at lesa beint. Tað merkir ikki, at eitt HTTP-svar er liðugt. Ein lykkja, sum steðgar har, kann stytta eina heilt normala SOCKS-niðurtøku í einum gloppi millum pakkar.
Eftir at SOCKS hevur sett TCP-sambandið, gevur HTTP-innrammingin framvegis liðugleikaregluna:
- Ein Content-Length-kroppur endar eftir teir kunngjørdu innihaldsbytesini.
- Eitt chunked-svar tørvar tann endandi chunk og viðkomandi trailere.
- Eitt sambandsavmarkað svar endar við sambandinum.
- Summi status og svar á HEAD hava ongan kropp.
Les status og høvd fyri at áseta galdandi reglu. At bíða bert eftir latting er ongin almenn loysn, tí eitt fullgott HTTP-svar kann lata sambandið opið. Kapasiteturin av einum buffer hevur somu ósamband við longd svarsins.
Brúka innrammingarútførsluna hjá HTTP-klinikkinum, tá hon stuðlar tí valda proxy-flutninginum. Á einum kompatibulum nútímans .NET-runtime kanst tú hyggja at tí innbygdu SOCKS-stuðlinum hjá HttpClient. Ein rá útførsla má varðveita greiningarstøðu gjøgnum partvís høvd og kropslesingar og skilja eydnaða liðuggerð frá avlýsing, tíðaravmarking og óvæntaðum EOF. Fyri eina ikki-tóma lesfyrispurn verður null lisin bytes at týða, at streymurin er endaður; hetta er ymist frá tí, at ongi bytes eru í raðini beint nú.
Proxyin kann gera tíðarglopp sjónlig, men hon broytir ikki eina tóma móttøkurað í eitt merki um enda boðskapar.