I-NetworkStream.DataAvailable ayikhombisi ukuphela kwempendulo ye-HTTP
Vimbela ukulanda kwe-HTTP okusikiwe ngokusebenzisa ukuhlukanisa imilayezo esikhundleni se-NetworkStream.DataAvailable njengesimo sokuphela.
NetworkStream.DataAvailable == false kusho ukuthi awekho amabhayithi alungele ukufundwa ngokushesha. Akusho ukuthi impendulo ye-HTTP isiphelile. Umjikelezo oma lapho ungase unqamule ukulanda kwe-SOCKS okuvamile ngokuphelele phakathi kwezikhala phakathi kwamaphakethe.
Ngemva kokuba i-SOCKS isisungule ukuxhumana kwe-TCP, ukuhlukanisa kwe-HTTP kusasihlinzeka umthetho wokuqedwa:
- Umzimba one-Content-Length uphela ngemva kwamabhayithi okuqukethwe amisiwe.
- Impendulo ye-chunked idinga i-chunk yokuphetha kanye nama-trailer afanele.
- Impendulo enqunyelwe ukuxhumana iphela kanye nokuxhumana.
- Ezinye izimo kanye nezimpendulo ku-HEAD azinawo umzimba.
Funda isimo kanye namakhanda ukuze unqume umthetho ofanele. Ukulinda ukuvalwa kuphela akusona isisombululo esijwayelekile, ngoba impendulo ye-HTTP ephelele ingashiya ukuxhumana kuvuliwe. Umthamo webhafa elilodwa nawo awuhlobene nobude bempendulo.
Sebenzisa ukusetshenziswa kokuhlukanisa kwiklayenti le-HTTP uma kusekela ukuthuthwa nge-proxy okukhethiwe. Kusikhathi sokusebenza se-.NET sesimanje esihambisanayo, cabanga ngokusekelwa kwe-SOCKS kwemvelo kwe-HttpClient. Ukusetshenziswa okuluhlaza kufanele kugcine isimo sokuhlaziya phakathi kwamakhanda ayingxenye nokufundwa komzimba, futhi kuhlukanise ukuqedwa okuphumelelayo nokukhanselwa, ukuphela kwesikhathi kanye ne-EOF engalindelekile. Esicelweni sokufunda esingenalutho, amabhayithi angu-zero afundiwe asho ukuthi umfudlana uphelile; lokhu kuhlukile ekubeni kungekho mabhayithi emgqeni njengamanje.
I-proxy ingenza izikhala zesikhathi zibonakale, kodwa ayiguquli umgqo wokwamukela ongenalutho ube uphawu lokuphela komlayezo.