EOF kudeatu Python SOCKS irakurketa begizta batean
Kudeatu EOF esplizituki SOCKS irakurketa zehatzeko begizta batean, itxitako konexioa inoiz iristen ez den denbora-muga gisa tratatu beharrean.
Begizta batek SOCKS erantzun baten zortzi byte nahi ditu. Hiru jaso ditu. Hurrengo irakurketak b'' itzultzen du, eta begiztak hura gehitzen du, luzera egiaztatzen du eta betiko saiatzen da berriro.
Hori EOF kudeatzeko akatsa da, ez denbora-muga luzeagoa behar duen proxy geldo bat. Fluxu-socket bidezko harrera normalean, byte-kate hutsak parekidea deskonektatu dela esan nahi du. Gainerako bost byteak ez dira konexio horretatik iritsiko.
Irakurketa zehatzeko laguntzaileak hiru emaitza desberdin behar ditu: zati ez-hutsak metatzea, EOFn huts egitea beharrezko luzera baino lehen, eta denbora-muga edo socket errore bat beste batera pasatzea. Kasu horiek ez lirateke berriro saiatzeko begizta generiko bakar batean batu behar.
Ezarri socketaren asmo den denbora-muga eragiketa baino lehen, eta irakurri proxy protokoloak zehaztutako eremu-luzerak. Harrera bakar batek erantzunaren zati bat baino ezin du itzuli. Alderantziz, buffer finko handi bat eskatzeak ez du SOCKS helbide bakoitzak luzera hori izatea eragiten.
Ez konpondu mendekotasun bat MSG_WAITALL zati zaharra bere iturburuan itsatsiz eta EOF, seinaleak eta plataforma-jokabidea estaltzen dituela suposatuz. Nahiago izan mantenutako inplementazioaren konponketa onartua, edo inplementatu laguntzailearen kontratua nahita parseroa zure kodea denean.
Gorde zenbat byte espero eta jaso ziren, kredentzialen kargak erregistratu gabe. «EOF zortzi erantzun-byteetatik hiruren ondoren» truke hautsia askoz hobeto azaltzen du «proxyak berriro zintzilikatu du» baino.