Tura rufewar rabin TCP bayan an kwashe bayanan da ke jira
Sarrafa EOF a cikin wakilin TCP ba tare da zubar da bayanan da ke cikin layi ba ko yanke amsa a ɗaya bangaren ba.
Abokin ciniki ya gama aikawa, wakilin ya ga EOF, amsa kuma ta ɓace. Rufe duka soket ɗin wakilin nan take na iya haifar da wannan jeri daidai. A cikin hanyar wucewa ta TCP, ƙarshen tsari a ɓangare ɗaya ba ya nufin ɓangaren kuma ya ƙare.
Yi la'akari da abokin ciniki da ya aika buƙata, ya rufe ɓangaren aikawansa kuma yana jiran amsa:
client -- request, then FIN --> proxy --> service
client <-------- reply ------- proxy <-- service
Wakilin yana da haɗin TCP guda biyu da rafukan bayanai guda biyu masu motsi da kansu. Dole ne ya tura alamar ƙarshen shigarwa gaba, bayan ya tura bayanan da suka gabace ta.
Kwashe layin kafin tura EOF
A cikin karɓar da ba sifili ba a kan rafin TCP, dawowar sifili tana nuna ƙarshen tsari na wannan rafin da ke shigowa. Yi wa wannan hanyar karanta alama a matsayin an gama. Dakatar da jiran ƙarin shigarwa daga gare ta, amma ka riƙe bayanan da aka riga aka jera don soket ɗin kishiyar.
Da zarar layin abokin ciniki-zuwa-sabis ya kwashe, kira shutdown(service_socket, SHUT_WR) a kan soket ɗin POSIX. Hakan yana ƙare ƙarin watsawa zuwa sabis ɗin yayin barin hanyar sabis-zuwa-abokin ciniki a buɗe. Lokacin da sabis ɗin ya gama amsarsa, yi amfani da aikin madubi bayan an kwashe layin amsar.
Rufe masu siffantawa ya dace a lokacin da duka ɓangarorin biyu da buffer ɗinsu da ke jira suka ƙare, ko kuma inda kuskure ko sokewa ke buƙatar ƙarshe. Ka riƙe ƙayyadadden lokaci ga abokin da ba ya taɓa kammala sauran rabinsa.
Shirye-shirye gayyata ce ta karatu
Soket ɗin da ake iya karantawa na iya samun bayanai ko yanayin EOF. Kira recv ka fassara sakamakon. Lambobi masu kyau su ne bayanan da za a tura; sifili shine ƙarshen hanya. A kan soket ɗin da ba ya toshewa, EAGAIN ko EWOULDBLOCK na nufin a halin yanzu babu ƙarin shigarwa, yayin da EINTR na iya buƙatar sake gwadawa. Babu ɗayansu da ya kasance irin wannan lamarin da EOF.
Kada ka nemi tutar FIN a cikin buffer ɗin bayanan da aka mayar. TCP yana isar da tsarin bayanai mai tsari ga wannan API; iyakokin fakiti da ɓangaren FIN ba kayan aikin aikace-aikace na yau da kullum ba ne.
Wannan shine zagayowar rayuwar rami na bayanai ɗanyen. Wakilin HTTP da ke nazarin saƙonni dole ne har yanzu ya mutunta tsarin HTTP, kuma wakilin da ke ƙare TLS shima yana da ka'idar rufe TLS. Ka riƙe waɗannan shawarwarin ka'idar sama da hanyar wucewa ta TCP mai jagora.