Mae'r cais cysylltiad SOCKS4 yn llwyddo, ond nid yw'r cymhwysiad byth yn gweld cyfarchiad agoriadol y gweinydd. Un lle i edrych yw darlleniad cyntaf y cysylltydd. Mae darlleniad o un ar bymtheg beit yn rhy fawr ar gyfer ateb SOCKS4 o wyth beit.

Maes yr atebBeitiau
Maes fersiwn yr ateb1
Cod canlyniad1
Maes porth2
Maes cyfeiriad4

Mae cod canlyniad 0x5a yn dangos bod y cais wedi'i ganiatáu. Mae SOCKS4a yn newid y ffordd y mae'r cais yn cario enw gwesteiwr; nid yw'n troi'r ateb yn un ar bymtheg beit.

Ar ôl yr ateb, mae'r un ffrwd TCP yn cario protocol y cyrchfan. Gall gweinydd post anfon ei gyfarchiad ar unwaith. Felly gall darlleniad sy'n defnyddio un ar bymtheg beit sydd ar gael gymryd ateb cyflawn y dirprwy ynghyd â'r wyth beit cyntaf o'r cyfarchiad hwnnw. Os nad oes dim yn dilyn eto, gall darlleniad blocio rhy fawr ychwanegu aros diangen yn lle hynny.

Mae union hyd yn gyfrifoldeb y parser

Nid yw gofyn am wyth beit unwaith yn dystiolaeth ddigonol bod wyth beit wedi cyrraedd. Gall darlleniadau ffrwd ddychwelyd llai. Casglwch union hyd yr ateb o fewn terfyn amser, stopiwch ar ffrwd gaeedig neu fethiannus, archwiliwch yr ateb, a gadewch y beitiau dilynol i'r cymhwysiad.

Os yw'r cysylltydd yn defnyddio darlleniad byffer mwy, cadwch bopeth ar ôl y terfyn a'i basio i'r defnyddiwr nesaf. Mae gwastraffu'r gormodedd yr un golled data â maint darllen gwahanol.

Mae angen parser ei hun ar SOCKS5. Gall hyd ei gyfeiriad ateb fod yn wahanol yn ôl y math o gyfeiriad. Byddai disodli pob darlleniad dirprwy â darlleniad sefydlog o wyth beit yn trwsio un protocol wrth dorri un arall.

Erthyglau cysylltiedig