Għaddi n-Noqfs Għeluq tat-TCP Wara li Tbattal il-Bajts Pendenti
Immaniġġja l-EOF fi proxy TCP mingħajr ma tarmi d-dejta fil-kju jew taqta' t-tweġiba fid-direzzjoni l-oħra.
Il-klijent jispiċċa jibgħat, il-proxy jara EOF, u t-tweġiba tispiċċa. Li tagħlaq iż-żewġ sokits tal-proxy minnufih jista' jikkawża eżattament dik is-sekwenza. F'relay TCP, tmiem ordnat f'direzzjoni waħda ma jfissirx li d-direzzjoni l-oħra spiċċat.
Ikkunsidra klijent li jibgħat talba, jagħlaq in-naħa tal-bgħit tiegħu u jistenna t-tweġiba:
client -- request, then FIN --> proxy --> service
client <-------- reply ------- proxy <-- service
Il-proxy għandu żewġ konnessjonijiet TCP u żewġ flussi ta' bajts li jiċċaqilqu b'mod indipendenti. Trid iġġorr l-indikazzjoni tat-tmiem tal-input 'il quddiem, wara li tkun ġarrbet il-bajts li jiġu qabilha.
Battal il-kju qabel tgħaddi l-EOF
F'riċeviment ta' daqs mhux żero fuq stream TCP, ritorn ta' żero jindika tmiem ordnat ta' dak l-istream dieħel. Immarka dik id-direzzjoni tal-qari bħala mitmuma. Ieqaf tistenna aktar input minnha, iżda żomm il-bajts li diġà tqiegħdu fil-kju għas-sokit oppost.
Ladarba l-kju mill-klijent għas-servizz ikun tbattal, sejjaħ shutdown(service_socket, SHUT_WR) fuq sokit POSIX. Dan itemm aktar trażmissjoni lejn is-servizz filwaqt li jħalli d-direzzjoni mis-servizz għall-klijent disponibbli. Meta s-servizz jispiċċa t-tweġiba tiegħu, applika l-operazzjoni mera wara li jbattal il-kju tat-tweġiba.
L-għeluq tad-deskritturi jappartjeni għall-punt fejn iż-żewġ direzzjonijiet u l-buffers pendenti tagħhom ikunu spiċċaw, jew fejn żball jew kanċellazzjoni jeħtieġu tmiem. Żomm timeout limitat għal sieħeb li qatt ma jlesti n-nofs li jibqagħlu.
Il-ħeffa hija stedina biex taqra
Sokit li jinqara jista' jkollu dejta jew kundizzjoni EOF. Sejjaħ recv u interpreta r-riżultat. Għaddiet pożittivi huma bajts x'jgħaddu; żero huwa t-tmiem direzzjonali. Fuq sokit li ma jimblokkax, EAGAIN jew EWOULDBLOCK ifissru li bħalissa m'hemmx aktar input, filwaqt li EINTR jista' jkun jeħtieġ li terġa' tipprova. L-ebda wieħed mhu l-istess avveniment bħall-EOF.
Tfittxix bandiera FIN fil-buffer tal-bajts li jintbagħat lura. TCP iwassal stream ordnat ta' bajts lil din l-API; il-konfini tal-pakketti u s-segment FIN mhumiex payload ordinarju tal-applikazzjoni.
Dan huwa ċ-ċiklu tal-ħajja ta' mina tal-bajts mhux maħduma. Proxy HTTP li jipparsja messaġġi xorta jrid jirrispetta l-qafas HTTP, u proxy li jtemm it-TLS għandu wkoll protokoll tat-tmiem tat-TLS. Żomm dawk id-deċiżjonijiet tal-protokoll 'il fuq mir-relay TCP direzzjonali.