Mzunguko unataka baiti nane za jibu la SOCKS. Umepokea tatu. Usomaji unaofuata unarudisha b'', na mzunguko unaiongeza, unakagua urefu, na unajaribu tena milele.

Hii ni hitilafu ya kushughulikia EOF, si proksi polepole inayohitaji muda mrefu wa kusubiri. Katika upokeaji wa kawaida wa soketi ya mtiririko, mfuatano tupu wa baiti unamaanisha mwenzake amekata muunganisho. Baiti tano zilizobaki hazitafika kwenye muunganisho huo.

Kisaidizi cha kusoma kwa usahihi kinahitaji matokeo matatu tofauti: kukusanya vipande visivyo tupu, kushindwa kwenye EOF kabla ya urefu unaohitajika, na kupeleka muda wa kusubiri au hitilafu nyingine ya soketi. Kesi hizo hazipaswi kuunganika kuwa mzunguko mmoja wa jumla wa kujaribu tena.

Weka muda wa kusubiri unaokusudiwa wa soketi kabla ya operesheni, na soma urefu wa sehemu zilizoainishwa na itifaki ya proksi. Upokeaji mmoja unaweza kurudisha sehemu tu ya jibu. Kinyume chake, kuomba bafa kubwa isiyobadilika hakufanyi kila anwani ya SOCKS iwe na urefu huo.

Usirekebishe utegemezi kwa kubandika kipande cha zamani cha MSG_WAITALL kwenye chanzo chake na kudhani kinashughulikia EOF, ishara na tabia ya jukwaa. Pendelea marekebisho yanayoungwa mkono ya utekelezaji unaotunzwa, au tekeleza kwa makusudi mkataba wa kisaidizi wakati kichanganuzi ni msimbo wako.

Hifadhi ni baiti ngapi zilitarajiwa na zilipokelewa, bila kurekodi mizigo ya vitambulisho. “EOF baada ya tatu kati ya nane za baiti za jibu” inaeleza ubadilishanaji uliovunjika vizuri zaidi kuliko “proksi imekwama tena”.

Makala zinazohusiana