सॉकेट त्रुटि 48 एक पायथन त्रुटि है जो तब शुरू होती है जब प्रक्रिया स्वयं को पहले से उपयोग में आने वाले पोर्ट से बांधने का प्रयास करती है।
"सॉकेट.त्रुटि:[इरनो 48] पता पहले से उपयोग में है" त्रुटि का क्या कारण है?
संक्षिप्त शोध के बाद, हमने पाया कि ये कारण हैं:
- पोर्ट के लिए बाध्य प्रक्रिया: जब भी सर्वर पर कोई प्रक्रिया बनाई जाती है, तो इसके द्वारा इंटरनेट के साथ संचार करने के लिए एक पोर्ट का उपयोग किया जाता है। बंदरगाह एक मेजबान की तरह है जो एक समय में एक अतिथि का मनोरंजन कर सकता है। हालाँकि, यदि आप एक पोर्ट निर्दिष्ट नहीं करते हैं, तो सर्वर इसे केवल डिफ़ॉल्ट पोर्ट पर बनाता है। अगली बार जब आप कोई प्रक्रिया बनाते हैं, तो एक पोर्ट निर्दिष्ट करना होगा क्योंकि डिफ़ॉल्ट पोर्ट पहले से ही उपयोग में है।
समाधान 1:पोर्ट नंबर निर्दिष्ट करना
त्रुटि ज्यादातर तब होती है जब कोई व्यक्ति किसी विशिष्ट प्रक्रिया को डिफ़ॉल्ट पोर्ट पर बाध्य करने का प्रयास करता है और डिफ़ॉल्ट पोर्ट पहले से ही एक अलग प्रक्रिया के लिए बाध्य होता है। इसलिए, इस चरण में, हम उस पोर्ट को निर्दिष्ट करेंगे जिस पर प्रक्रिया को सीमित किया जाना है।
- संभावना है, आप एक प्रक्रिया बनाने के लिए निम्न कमांड का उपयोग कर रहे हैं।
$ python -m SimpleHTTPServer
- इसके बजाय, एक प्रक्रिया बनाने के लिए इस कमांड का उपयोग करें।
$python -m SimpleHTTPServer (पोर्ट नंबर)
- प्रक्रिया बनने की प्रतीक्षा करें और देखें कि क्या समस्या बनी रहती है।
समाधान 2:पोर्ट को खाली करना
यदि पोर्ट पहले से ही किसी भिन्न प्रक्रिया द्वारा उपयोग में है, तो नई प्रक्रिया उस पोर्ट पर कार्य करने में सक्षम नहीं होगी। इसलिए, इस चरण में, हम पिछली प्रक्रिया को समाप्त करके और फिर नया चलाकर पोर्ट को मुक्त कर देंगे। उसके लिए:
- एक विशिष्ट पोर्ट का उपयोग करके कई प्रक्रियाओं को सूचीबद्ध करने के लिए निम्न कमांड का उपयोग करें।
$ ps -fA | ग्रेप अजगर
- कमांड तर्क निम्न पंक्तियों की तरह कुछ दिखाई देगा।
- इसमें से, मारने के लिए हम जिस प्रोसेस कोड का उपयोग करेंगे, वह "88234" है।
- प्रक्रिया को समाप्त करने के लिए निम्न आदेश का उपयोग करें।
88234 को मारें
वैकल्पिक रूप से, आप इसे मारने के लिए निम्न कमांड का उपयोग कर सकते हैं।
सुडो किल -9 पीआईडी
- अब आप निम्न आदेश का उपयोग करके इस पोर्ट के लिए प्रक्रिया को बाध्य कर सकते हैं।
$ python -m SimpleHTTPServer (पोर्ट नंबर)
- प्रक्रिया अब बनाई जाएगी।
समाधान 3:रास्पबेरी पाई (केवल रास्पबेरी पाई के लिए) को पुनरारंभ करना
आप रास्पबेरी पाई पर रास्पबेरी पाई को पुनरारंभ करके या टर्मिनल शेल को मारकर इस त्रुटि से छुटकारा पा सकते हैं। रास्पबेरी पाई कभी-कभी प्रक्रियाओं को स्वचालित रूप से मारने में असमर्थ होती है और बंदरगाहों पर पहले से चल रही पिछली प्रक्रियाओं के कारण इस त्रुटि को ट्रिगर करती है।