Chan eil NetworkStream.DataAvailable a' comharrachadh deireadh freagairt HTTP
Seachain luchdaidhean-a-nuas HTTP air an gearradh le frèamadh theachdaireachdan an àite NetworkStream.DataAvailable mar chumha deiridh.
Tha NetworkStream.DataAvailable == false a' ciallachadh nach eil baoitean sam bith deiseil ri leughadh sa bhad. Chan eil e a' ciallachadh gu bheil freagairt HTTP coileanta. Faodaidh lùb a stadadh an sin luchdadh-a-nuas SOCKS gu tur àbhaisteach a ghearradh rè beàrn eadar paiceadan.
An dèidh do SOCKS an ceangal TCP a stèidheachadh, tha frèamadh HTTP fhathast a' solarachadh riaghailt a' choileanaidh:
- Thig corp Content-Length gu crìch an dèidh na baoitean susbaint a chaidh ainmeachadh.
- Feumaidh freagairt chunked a chunk deireannach agus na trailers iomchaidh.
- Thig freagairt a tha cuibhrichte leis a' cheangal gu crìch leis a' cheangal.
- Chan eil corp aig cuid de stadan agus freagairtean do HEAD.
Leugh an staid agus na bannan-cinn gus an riaghailt iomchaidh a dhearbhadh. Chan e fuasgladh coitcheann a bhith a' feitheamh ri dùnadh a-mhàin, oir faodaidh freagairt HTTP choileanta an ceangal fhàgail fosgailte. Tha comas aon bhufaidh cho neo-cheangailte ri fad na freagairt.
Cleachd buileachadh frèamaidh a' chliant HTTP nuair a tha e a' toirt taic don chòmhdhail seach-fhrithealaiche a chaidh a thaghadh. Air runtime .NET ùr-nodha co-fhreagarrach, smaoinich air taic dhùthchasach SOCKS HttpClient. Feumaidh buileachadh amh staid parsalaidh a chumail thairis air bannan-cinn pàirteach agus leughaidhean cuirp, agus eadar-dhealachadh a dhèanamh eadar coileanadh soirbheachail agus cuir-à-fàs, ùine-ìsle agus EOF ris nach robh dùil. Airson iarrtas leughaidh nach eil falamh, tha neoni baoitean air an leughadh a' ciallachadh gu bheil an t-sruth air tighinn gu crìch; tha seo eadar-dhealaichte bho nach eil baoitean sam bith san ciudha an-dràsta fhèin.
Faodaidh an seach-fhrithealaiche beàrnan-ùine a dhèanamh follaiseach, ach chan eil e ag atharrachadh ciudha fàilteachaidh falamh gu bhith na chomharra deireadh teachdaireachd.