Reikalavimai: Kai kurie trečiųjų šalių įrankiai yra python scenarijai, aš pats kuriu C#, nemoku paties python, jei išverčiate python kodą į C# kodą, tai labai sunku, geriau naudoti python http paslaugai atidaryti, aš vadinu sąsają dviem ir galiausiai vykdau patį python, kad vykdyčiau savo vidinį kodą.
HTTPServer yra socketserver.TCPServer poklasis. Jis sukuria ir klausosi HTTP lizdų, kad išsiųstų užklausas apdorojimo programoms.
Dokumentacija:Hipersaito prisijungimas matomas.
Patarimas: http.serverNerekomenduojama gaminti。 Ji įgyvendina tik pagrindinius saugumo patikrinimus.
Kodas yra toks:
Naudokite Python, kad klausytumėtės 10254 prievado, įgalinkite HTTP paslaugą ir pabandykite pasiekti URL, kaip parodyta šiame paveikslėlyje:
Tačiau testai yra pasiekiami, kai naudoju krašto naršyklę, kad galėčiau pasiekti kelis kartus, kartais visadaLaukiamabūsena, užmezgęs ryšį iš gimtojo per telnet ir 10254 prievadą, pastebėjau, kad http paslauga nepasiekiama tiek iš serverio, tiek iš vietinio, kaip parodyta paveikslėlyje žemiau,Jokio atsakymo 20 minučių, ir galų gale, aš galėjau tik pakartotinai paprašyti:
Iš pradžių maniau, kad problema yra ta, kad nėra "Content-Length" nustatymo, todėl naršyklė nežino, kiek baitų turinio skaityti, ir nežinojau, kada skaitymas baigtas, bet po atsakymo antraštės problema vis tiek nebuvo išspręsta.
Ar gali būti, kad numatytasis yra vienos gijos, leidžiantis vienu metu pasiekti tik vieną klientą?
Žvelgdamas į dokumentaciją, radau, kad yra ThreadingHTTPServer klasė, kuri naudoja gijas, kad apdorotų užklausas naudojant gijas, ir kodas pakeistas į šį:
Problema išspręsta, baigta.
|