דער קליענט ענדיקט שיקן, דער פּראָקסי זעט EOF, און די ענטפֿער פֿאַרשווינדט. פֿאַרמאַכן ביידע פּראָקסי סאָקעטן גלײַך קען פֿאַראורזאַכן פּונקט די סעקווענץ. אין אַ TCP רעלײַ מיינט אַ סדריק סוף אין איין ריכטונג נישט אַז די אַנדערע ריכטונג איז פֿאַרטיק.

באַטראַכט אַ קליענט וואָס שיקט אַ בקשה, פֿאַרמאַכט זיין שיקזײַט און וואַרט אויף דער ענטפֿער:

client -- request, then FIN --> proxy --> service
client <-------- reply ------- proxy <-- service

דער פּראָקסי האָט צוויי TCP פֿאַרבינדונגען און צוויי אומאָפּהענגיקע באַוועגונגען פֿון בייט-שטראָמען. ער מוז איבערגעבן ווײַטער דעם צייכן פֿון סוף פֿון אַרײַנגאַנג, נאָך דעם וואָס ער האָט איבערגעגעבן די בייטעס וואָס קומען פֿאַר אים.

גיסט אויס די רייע פֿאַר איר שיקט ווײַטער EOF

ביי אַ באַקומען פֿון אַ נישט-נול גרייס אויף אַ TCP שטראָם, באַדײַט אַ צוריקקער פֿון נול אַ סדריק סוף פֿון יענעם אַרײַנקומענדיקן שטראָם. מאַרק אָן יענע לייען-ריכטונג ווי פֿאַרטיק. הער אויף וואַרטן אויף מער אַרײַנגאַנג פֿון איר, אָבער האַלט די בייטעס וואָס זענען שוין אין דער רייע פֿאַר דעם פֿאַרקערטן סאָקעט.

אַז די רייע פֿון קליענט צו דינסט איז אויסגעגאסן, רופֿט אָן shutdown(service_socket, SHUT_WR) אויף אַ POSIX סאָקעט. דאָס ענדיקט ווײַטערדיקע איבערטראָגונג צו דער דינסט בשעת די ריכטונג פֿון דינסט צו קליענט בלײַבט צוגענגלעך. ווען די דינסט ענדיקט איר ענטפֿער, פֿאַרווענד די שפּיגל-אָפּעראַציע נאָך אויסגיסן די ענטפֿער-רייע.

פֿאַרמאַכן די דעסקריפּטאָרן געהערט צו דעם פּונקט ווו ביידע ריכטונגען און זייערע וואַרטנדיקע פּופֿערס זענען פֿאַרטיק, אָדער ווו אַ טעות אָדער אַן אָפּזאָג פֿאָדערן אַן ענדיקן. האַלט אַ באַגרענעצטן צײַט-לימיט פֿאַר אַ שוטעף וואָס פֿאַרענדיקט קיינמאָל זיין פֿאַרבליבענע העלפֿט.

גרייטאַקייט איז אַן אײַנלאַדונג צו לייענען

אַ לייענבאַרער סאָקעט קען האָבן דאַטן אָדער אַן EOF צושטאַנד. רופֿט אָן recv און טײַטשט אָפּ דעם רעזולטאַט. פּאָזיטיווע צאָלן זענען בייטעס צו שיקן ווײַטער; נול איז דער סוף פֿון דער ריכטונג. אויף אַ ניט-בלאָקירנדיקן סאָקעט באַדײַט EAGAIN אָדער EWOULDBLOCK אַז אַצינד איז נישטאָ מער אַרײַנגאַנג, בשעת EINTR קען פֿאָדערן אַ נייַע פּרווו. קיין איינער איז נישט דער זעלביקער געשעעניש ווי EOF.

זוכט נישט קיין FIN פֿענדל אין דעם צוריקגעגעבענעם בייט-פּופֿער. TCP ליפֿערט דעם API אַ סדריקן בייט-שטראָם; פּאַקעט גרענעצן און דער FIN סעגמענט זענען נישט קיין געוויינטלעכע אַפּליקאַציע-לאַסט.

דאָס איז דער לעבנס-ציקל פֿון אַ רוי בייט-טונעל. אַ HTTP פּראָקסי וואָס צענעמט מעלדונגען מוז נאָך אַלץ אָנערקענען HTTP פֿאַסונג, און אַ TLS-ענדיקנדיקער פּראָקסי האָט אויך אַ TLS פֿאַרמאַך-פּראָטאָקאָל. האַלט יענע פּראָטאָקאָל-באַשלוסן איבער דעם ריכטונג-געריכטן TCP רעלײַ.

פֿאַרבונדענע אַרטיקלען