Loop kan fẹ mẹjọ baiti ti idahun SOCKS. O ti gba mẹta. Kika ti o tẹle n da b'' pada, loop naa si fi kun, o yẹ ipari rẹ, o si tun gbiyanju lailai.

Eyi jẹ aṣiṣe itọju EOF, kii ṣe aṣoju ti o lọra ti o nilo akoko ti o gun. Ninu gbigba socket ṣiṣan deede, okun baiti ti o ṣofo tumọ si pe ẹlẹgbẹ ti ge asopọ. Baiti marun ti o ku kii yoo de lori asopọ yẹn.

Oluranlọwọ kika deede nilo awọn abajade ọtọọtọ mẹta: ikojọpọ awọn ege ti kii ṣofo, ikuna lori EOF ṣaaju ipari ti o nilo, ati gbigbe akoko tabi aṣiṣe socket miiran lọ. Awọn ọran wọnyẹn ko yẹ ki o darapọ sinu loop igbiyanju lẹẹkansi gbogbogbo kan.

Ṣeto akoko ti a pinnu fun socket ṣaaju iṣẹ naa, ki o ka awọn ipari aaye ti ilana aṣoju ti pinnu. Gbigba kan le da apakan ti idahun pada nikan. Lọna miiran, bibeere fun buffer ti o tobi ti o wa titi ko jẹ ki gbogbo adiresi SOCKS ni ipari yẹn.

Maṣe tun iṣẹ-ẹri kan ṣe nipa lilẹ somọ MSG_WAITALL atijọ sinu orisun rẹ ati ro pe o bo EOF, awọn ifihan ati ihuwasi pẹpẹ. Yan atunṣe ti o ni atilẹyin ti imuse ti a tọju, tabi fi igbẹkẹle oluranlọwọ naa ṣiṣẹ mọọmọ nigbati parser jẹ koodu rẹ.

Tọju iye baiti ti a reti ati ti a gba, lai ṣe igbasilẹ awọn ẹru ẹri. “EOF lẹhin mẹta ninu mẹjọ baiti idahun” ṣalaye paṣipaarọ ti o bajẹ daradara ju “aṣoju ti di lẹẹkansi” lọ.

Àwọn àpilẹ̀kọ tó jọra