வாடிக்கையாளர் அனுப்புவதை முடிக்கிறது, ப்ராக்ஸி EOF-ஐக் காண்கிறது, பதில் மறைந்துவிடுகிறது. ப்ராக்ஸியின் இரு சாக்கெட்டுகளையும் உடனே மூடுவது அதே வரிசையை ஏற்படுத்தலாம். TCP ரிலேவில் ஒரு திசையில் ஒழுங்கான முடிவு என்பது மற்ற திசை முடிந்துவிட்டது என்று பொருள் அல்ல.

கோரிக்கையை அனுப்பி, தன் அனுப்பும் பக்கத்தை மூடி, பதிலுக்காகக் காத்திருக்கும் வாடிக்கையாளரைக் கவனியுங்கள்:

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

ப்ராக்ஸிக்கு இரு TCP இணைப்புகளும் தனித்தனியாக நகரும் இரு பைட் ஸ்ட்ரீம்களும் உள்ளன. தனக்கு முன் வரும் பைட்டுகளை அனுப்பிய பிறகு, உள்ளீட்டின் முடிவுச் சமிக்ஞையையும் அது முன்னே கொண்டு செல்ல வேண்டும்.

EOF-ஐ முன்னனுப்பும் முன் வரிசையை வடியுங்கள்

TCP ஸ்ட்ரீமில் பூஜ்ஜியமற்ற அளவு பெறுதல் நிகழும்போது, பூஜ்ஜியம் திரும்புவது அந்த வரும் ஸ்ட்ரீமின் ஒழுங்கான முடிவைக் குறிக்கிறது. அந்த வாசிப்புத் திசையை முடிந்ததாகக் குறிக்கவும். அதிலிருந்து மேலும் உள்ளீட்டுக்காகக் காத்திருப்பதை நிறுத்துங்கள், ஆனால் எதிர் சாக்கெட்டுக்காக ஏற்கனவே வரிசைப்படுத்தப்பட்ட பைட்டுகளை வைத்திருங்கள்.

வாடிக்கையாளரிலிருந்து சேவைக்கான வரிசை வடிந்ததும், POSIX சாக்கெட்டில் shutdown(service_socket, SHUT_WR)-ஐ அழையுங்கள். அது சேவை நோக்கிய மேலும் பரிமாற்றத்தை முடிக்கிறது, சேவையிலிருந்து வாடிக்கையாளர் திசை கிடைக்கக்கூடியதாகவே இருக்கும். சேவை தன் பதிலை முடித்ததும், பதில் வரிசையை வடித்த பிறகு கண்ணாடி செயல்பாட்டைப் பயன்படுத்துங்கள்.

விவரிப்பான்களை மூடுவது இரு திசைகளும் அவற்றின் காத்திருக்கும் இடையகங்களும் முடிந்த புள்ளிக்கு, அல்லது பிழை அல்லது ரத்து நிறுத்தத்தைக் கோரும் இடத்துக்கு உரியது. தன் மீதமுள்ள பாதியை ஒருபோதும் முடிக்காத துணைக்கு வரம்புள்ள காலவரம்பை வைத்திருங்கள்.

தயார்நிலை வாசிக்கும் அழைப்பு

வாசிக்கக்கூடிய சாக்கெட்டில் தரவு அல்லது EOF நிலை இருக்கலாம். recv-ஐ அழைத்து முடிவை விளக்குங்கள். நேர்மறை எண்கள் அனுப்ப வேண்டிய பைட்டுகள்; பூஜ்ஜியம் திசையின் முடிவு. தடுக்காத சாக்கெட்டில், EAGAIN அல்லது EWOULDBLOCK என்பது இப்போது கூடுதல் உள்ளீடு இல்லை என்பதாகும், அதேசமயம் EINTR மீண்டும் முயல வேண்டியிருக்கலாம். இரண்டும் EOF-ஐப் போன்ற அதே நிகழ்வு அல்ல.

திருப்பிய பைட் இடையகத்தில் FIN கொடியைத் தேட வேண்டாம். TCP இந்த API-க்கு ஒழுங்கான பைட் ஸ்ட்ரீமை வழங்குகிறது; பாக்கெட் எல்லைகளும் FIN பிரிவும் சாதாரண பயன்பாட்டு சுமை அல்ல.

இது மூல பைட் சுரங்கப்பாதையின் வாழ்க்கைச் சுழற்சி. செய்திகளைப் பகுப்பாய்வு செய்யும் HTTP ப்ராக்ஸி இன்னும் HTTP சட்டகத்தை மதிக்க வேண்டும், TLS-ஐ முடிக்கும் ப்ராக்ஸிக்கும் TLS மூடல் நெறிமுறை உள்ளது. அந்த நெறிமுறை முடிவுகளை திசைசார் TCP ரிலேவுக்கு மேலே வையுங்கள்.

தொடர்புடைய கட்டுரைகள்