NetworkStream.DataAvailable == false ifisser li m'hemmx bytes lesti biex jiġu mqarrba minnufih. Dan ma jfissirx li risposta HTTP hija kompluta. Loop li jieqaf hemm jista' jaqta' download SOCKS normalissmu waqt distakk bejn pakketti.

Wara li SOCKS jistabbilixxi l-konnessjoni TCP, il-qafas HTTP għadu jipprovdi r-regola tat-tlestija:

  • Korp b'Content-Length jintemm wara l-bytes tal-kontenut iddikjarati.
  • Risposta chunked teħtieġ il-chunk finali u t-trailers applikabbli.
  • Risposta delimitata mill-konnessjoni tintemm mal-konnessjoni.
  • Xi stati u risposti għal HEAD m'għandhomx korp.

Aqra l-istat u l-headers biex tiddetermina r-regola applikabbli. Li tistenna biss għall-għeluq mhuwiex soluzzjoni ġenerali, għax risposta HTTP kompluta tista' tħalli l-konnessjoni miftuħa. Il-kapaċità ta' buffer wieħed hija wkoll daqstant mhux relatata mat-tul tar-risposta.

Uża l-implimentazzjoni tal-qafas tal-klijent HTTP meta tappoġġja t-trasport tal-proxy magħżul. Fuq runtime .NET modern kompatibbli, ikkunsidra l-appoġġ nattiv SOCKS ta' HttpClient. Implimentazzjoni mhux maħduma trid iżżomm l-istat tal-parsing matul headers parzjali u qari tal-korp, u tiddistingwi tlestija b'suċċess minn kanċellazzjoni, timeout u EOF mhux mistenni. F'talba ta' qari mhux vojta, żero bytes mqarrba jfisser li l-fluss spiċċa; dan hu differenti milli ma jkunx hemm bytes fil-kju bħalissa.

Il-proxy jista' jagħmel id-distakki fil-ħin notevoli, iżda ma jbiddilx kju ta' riċeviment vojt f'markatur tat-tmiem tal-messaġġ.

Artikli relatati