पायथन सॉकेट त्रुटि 48 को ठीक करें



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

सॉकेट त्रुटि 48 एक पायथन त्रुटि है जो तब ट्रिगर होती है जब प्रक्रिया खुद को पहले से उपयोग में आने वाले पोर्ट से बांधने का प्रयास करती है।



सर्वर



क्या 'सॉकेट.रोर: [एरणो 48] पता पहले से ही उपयोग में है' त्रुटि?

संक्षिप्त शोध के बाद, हमने इसके कारणों का पता लगाया:



  • पोर्ट के लिए बाध्य प्रक्रिया: जब भी सर्वर पर कोई प्रक्रिया बनाई जाती है, तो इंटरनेट के साथ संचार करने के लिए एक पोर्ट का उपयोग किया जाता है। बंदरगाह एक मेजबान की तरह है जो एक समय में एक अतिथि का मनोरंजन कर सकता है। हालाँकि, यदि आप पोर्ट निर्दिष्ट नहीं करते हैं, तो सर्वर केवल इसे डिफ़ॉल्ट पोर्ट पर बनाता है। अगली बार जब आप एक प्रक्रिया बनाते हैं, तो एक पोर्ट निर्दिष्ट करना होगा क्योंकि डिफ़ॉल्ट पोर्ट पहले से ही उपयोग में है।

समाधान 1: पोर्ट नंबर निर्दिष्ट करना

त्रुटि तब होती है जब कोई व्यक्ति डिफ़ॉल्ट पोर्ट के लिए एक विशिष्ट प्रक्रिया को बाध्य करने का प्रयास करता है और डिफ़ॉल्ट पोर्ट पहले से ही एक अलग प्रक्रिया से बंधा होता है। इसलिए, इस चरण में, हम उस पोर्ट को निर्दिष्ट करेंगे, जिस पर प्रक्रिया को बाध्य किया जाना है।

  1. संभावना है, आप एक प्रक्रिया बनाने के लिए निम्नलिखित कमांड का उपयोग कर रहे हैं।
    $ अजगर -m सिंपलएचटीपीएसरवर
  2. इसके बजाय, प्रक्रिया बनाने के लिए इस कमांड का उपयोग करें।
    $ अजगर-एम सिंपलएचटीपीएसवर (पोर्ट नंबर)
  3. प्रक्रिया बनने के लिए प्रतीक्षा करें और देखें कि क्या समस्या बनी रहती है।

समाधान 2: पोर्ट को मुक्त करना

अगर द बंदरगाह पहले से ही एक अलग प्रक्रिया के उपयोग में है, नई प्रक्रिया उस पोर्ट पर कार्य नहीं कर पाएगी। इसलिए, इस चरण में, हम पिछली प्रक्रिया को समाप्त करके और फिर नए को चलाकर बंदरगाह को मुक्त करेंगे। उसके लिए:

  1. एक विशिष्ट पोर्ट का उपयोग करके कई प्रक्रियाओं को सूचीबद्ध करने के लिए निम्नलिखित कमांड का उपयोग करें।
    $ ps -fA | grep अजगर
  2. कमांड तर्क निम्नलिखित लाइनों की तरह कुछ दिखेगा।
    601 88234 12788 0 9:53 अपराह्न ttys000 0: 00.16 अजगर-सिंपलएचटी टीज़र
  3. इसमें से, प्रक्रिया कोड जिसे हम मारने के लिए उपयोग करेंगे '88234' है।
  4. प्रक्रिया को मारने के लिए निम्न कमांड का उपयोग करें।
    88234 को मार डालो

    वैकल्पिक रूप से, आप इसे मारने के लिए निम्न कमांड का उपयोग कर सकते हैं।



    सूदो मार-९ पीआईडी
  5. अब आप निम्न कमांड का उपयोग करके इस पोर्ट पर प्रक्रिया को बाध्य कर सकते हैं।
    $ अजगर-एम सिंपलएचटीपीएसवर (पोर्ट नंबर)
  6. अब प्रक्रिया बनाई जाएगी।

समाधान 3: रास्पबेरी पाई को पुनः आरंभ करना (केवल रास्पबेरी पाई के लिए)

आप इस त्रुटि से छुटकारा पा सकते हैं रास्पबेरी पाई रास्पबेरी पाई को पुनरारंभ करने या टर्मिनल शेल को मारकर। रास्पबेरी पाई कभी-कभी प्रक्रियाओं को स्वचालित रूप से मारने में असमर्थ है और पहले से ही बंदरगाहों पर चल रही प्रक्रियाओं के कारण इस त्रुटि को ट्रिगर करता है।

1 मिनट पढ़ा