Python SOCKS படிப்பு சுழற்சியில் EOF கையாளுதல்
மூடப்பட்ட இணைப்பை ஒருபோதும் வராத நேரக் கெடுவாகக் கருதுவதற்குப் பதிலாக SOCKS துல்லியப் படிப்பு சுழற்சியில் EOF-ஐ வெளிப்படையாகக் கையாளுங்கள்.
ஒரு சுழற்சி SOCKS பதிலின் எட்டு பைட்டுகளை விரும்புகிறது. மூன்றைப் பெற்றுள்ளது. அடுத்த படிப்பு b'' ஐத் திருப்பித் தருகிறது, சுழற்சி அதைச் சேர்க்கிறது, நீளத்தைச் சரிபார்த்து முடிவில்லாமல் மீண்டும் முயல்கிறது.
இது EOF கையாளுதல் பிழை, நீண்ட நேரக் கெடு தேவைப்படும் மெதுவான ப்ராக்ஸி அல்ல. சாதாரண ஸ்ட்ரீம்-சாக்கெட் பெறுதலில், காலி பைட் சரம் என்பது சகாவி இணைப்பைத் துண்டித்துவிட்டார் என்பதாகும். மீதமுள்ள ஐந்து பைட்டுகள் அந்த இணைப்பில் வராது.
துல்லியப் படிப்பு உதவிக்கு மூன்று வேறுபட்ட முடிவுகள் தேவை: காலியற்ற துண்டுகளைச் சேர்ப்பது, தேவையான நீளத்திற்கு முன் EOF இல் தோல்வியடைவது, மற்றும் நேரக் கெடு அல்லது பிற சாக்கெட் பிழையைக் கடத்துவது. அந்த நிகழ்வுகள் ஒரே பொதுவான மறுமுயற்சி சுழற்சியில் இணையக்கூடாது.
செயல்பாட்டிற்கு முன் சாக்கெட்டின் நோக்கமான நேரக் கெடுவை அமைக்கவும், ப்ராக்ஸி நெறிமுறை குறிப்பிடும் புல நீளங்களைப் படிக்கவும். ஒரு பெறுதல் பதிலின் ஒரு பகுதியை மட்டுமே திருப்பித் தர முடியும். மாறாக, பெரிய நிலையான இடையகத்தைக் கேட்பது ஒவ்வொரு SOCKS முகவரியும் அந்த நீளமாக இருப்பதை உறுதி செய்யாது.
பழைய MSG_WAITALL துணுக்கை அதன் மூலத்தில் ஒட்டி அது EOF, சமிக்ஞைகள், மேடை நடத்தையை உள்ளடக்கும் எனக் கருதி சார்பைச் சரிசெய்ய வேண்டாம். பராமரிக்கப்படும் செயலாக்கத்தின் ஆதரவு பெற்ற திருத்தத்தை விரும்புங்கள், அல்லது பகுப்பாய்வி உங்கள் குறியீடாக இருந்தால் உதவியின் ஒப்பந்தத்தை வேண்டுமென்றே செயல்படுத்துங்கள்.
எத்தனை பைட்டுகள் எதிர்பார்க்கப்பட்டன, பெறப்பட்டன என்பதை வைத்திருங்கள், சான்றுக் கடன் சுமைகளைப் பதிவு செய்யாமல். “எட்டு பதில் பைட்டுகளில் மூன்றிற்குப் பின் EOF” உடைந்த பரிமாற்றத்தை “ப்ராக்ஸி மீண்டும் சிக்கியது” என்பதை விட மிகச் சிறப்பாக விளக்குகிறது.