Mae dolen eisiau wyth beit o ateb SOCKS. Mae wedi cael tri. Mae'r darlleniad nesaf yn dychwelyd b'', ac mae'r ddolen yn ei ychwanegu, yn gwirio'r hyd, ac yn ceisio eto am byth.

Mae hyn yn fyg trin EOF, nid yn ddirprwy araf sydd angen amser allan hirach. Ar gyfer derbyniad soced ffrwd arferol, mae llinyn beit gwag yn golygu bod y garfan arall wedi datgysylltu. Ni fydd y pum beit sy'n weddill yn cyrraedd ar y cysylltiad hwnnw.

Mae angen tri chanlyniad gwahanol ar gynorthwyydd darllen fanwl: cronni darnau nad ydynt yn wag, methu ar EOF cyn yr hyd gofynnol, a lledaenu amser allan neu wall soced arall. Ni ddylai'r achosion hynny gwympo i mewn i un ddolen ailgeisio gyffredinol.

Gosodwch amser allan arfaethedig y soced cyn y llawdriniaeth, a darllenwch hyd y meysydd a bennir gan brotocol y dirprwy. Gall un derbyniad ddychwelyd dim ond rhan o ateb. I'r gwrthwyneb, nid yw gofyn am fferm fawr sefydlog yn gwneud i bob cyfeiriad SOCKS fod â'r hyd hwnnw.

Peidiwch ag atgyweirio dibyniaeth trwy gludo hen ddarn MSG_WAITALL i'w ffynhonnell a thybio ei fod yn cynnwys EOF, signalau ac ymddygiad platfform. Dewiswch y cywiriad a gefnogir gan y gweithrediad a gynhelir, neu weithredwch gontract y cynorthwyydd yn fwriadol pan mai eich cod chi yw'r dosrannydd.

Cadwch faint o feit a ddisgwylid ac a gafwyd, heb gofnodi llwythi tystlythyrau. Mae “EOF ar ôl tri o wyth beit ateb” yn esbonio'r cyfnewid toredig yn llawer gwell na “dirprwy wedi hongian eto”.

Erthyglau cysylltiedig