Iklayenti liqeda ukuthumela, i-proxy ibona i-EOF, futhi impendulo iyanyamalala. Ukuvala womabili amasokhethi e-proxy ngokushesha kungabangela ukulandelana okunjalo. Ku-relay ye-TCP, ukuphela okuhlelekile kwelinye icele akusho ukuthi elinye icele liqedile.

Cabanga ngeklayenti elithumela isicelo, elivala uhlangothi lwalo lokuthumela futhi elilinde impendulo:

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

I-proxy inokuxhumana okubili kwe-TCP kanye nemifudlana emibili yamabhayithi ehamba ngokuzimela. Kufanele idlulisele phambili uphawu lokuphela kokokufaka, ngemva kokudlulisa amabhayithi akwandulelayo.

Khipha umgqo ngaphambi kokudlulisela i-EOF

Ekutholeni kobukhulu obungeyona uziro ku-stream ye-TCP, ukubuya kukaziro kubonisa ukuphela okuhlelekile kwaleyo stream engenayo. Maka lolo hlangothi lokufunda njengoluqediwe. Yeka ukulinda okunye okokufaka kulo, kodwa gcina amabhayithi asevele asemgqeni wesokhethi elibhekene nalo.

Lapho umgqo osuka eklayentini uya kusevisi usukhiphiwe, shayela i-shutdown(service_socket, SHUT_WR) kusokhethi ye-POSIX. Lokho kuqeda ukudluliswa okuqhubekayo okuya kusevisi kuyilapho uhlangothi olusuka kusevisi luye eklayentini luhlala lutholakala. Lapho isevisi iqeda impendulo yayo, sebenzisa umsebenzi wesibuko ngemva kokukhipha umgqo wempendulo.

Ukuvala izincazelo kuhambisana nephuzu lapho zombili izinhlangothi kanye namabhafa azo alindile seziqediwe, noma lapho iphutha noma ukukhansela kudinga ukuqedwa. Gcina isikhathi esilinganiselwe somlingani ongaqedi neze uhhafu wakhe osele.

Ukulungela kuyisimemo sokufunda

Isokhethi efundekayo ingaba nedatha noma isimo se-EOF. Shayela i-recv futhi utolike umphumela. Izinombolo ezinhle ngamabhayithi okudlulisela; uziro uwukuphela kohlangothi. Kusokhethi engavimbeli, i-EAGAIN noma i-EWOULDBLOCK isho ukuthi okwamanje akukho okunye okokufaka, kuyilapho i-EINTR ingadinga ukuphinda uzame. Akukho kokubili okuwumcimbi ofanayo ne-EOF.

Ungafuni ifulegi le-FIN kubhafa lamabhayithi elibuyisiwe. I-TCP iletha i-byte stream ehlelekile kule API; imingcele yamaphakethe nengxenye ye-FIN akusiyo imithwalo evamile yohlelo lokusebenza.

Lona umjikelezo wokuphila womhubhe wamabhayithi aluhlaza. I-proxy ye-HTTP ehlaziya imilayezo kusamele ihloniphe ukuhlanganiswa kwe-HTTP, futhi i-proxy eqeda i-TLS nayo ineprotocol yokuvala ye-TLS. Gcina lezo zinqumo zeprotocol ngaphezu kwe-relay ye-TCP eqondisayo.

Izihloko ezihlobene