Επιδιόρθωση σφάλματος Python Socket 48

Το Socket Error 48 είναι ένα σφάλμα python το οποίο ενεργοποιείται όταν η διαδικασία προσπαθεί να δεσμευτεί σε μια θύρα που χρησιμοποιείται ήδη.

Τι προκαλεί το σφάλμα "socket.error: [Errno 48] Η διεύθυνση χρησιμοποιείται ήδη";

Μετά από σύντομη έρευνα, βρήκαμε τα αίτια:

  • Διαδικασία δεσμευμένη στη θύρα:Κάθε φορά που δημιουργείται μια διαδικασία στο διακομιστή, χρησιμοποιείται μια θύρα για να επικοινωνεί με το Διαδίκτυο. Το λιμάνι είναι σαν οικοδεσπότης που μπορεί να φιλοξενήσει έναν επισκέπτη κάθε φορά. Ωστόσο, εάν δεν καθορίσετε μια θύρα, ο διακομιστής τη δημιουργεί στην προεπιλεγμένη θύρα. Την επόμενη φορά που θα δημιουργήσετε μια διαδικασία, πρέπει να καθοριστεί μια θύρα επειδή η προεπιλεγμένη θύρα χρησιμοποιείται ήδη.

Λύση 1: Καθορισμός αριθμού θύρας

Το σφάλμα προκαλείται κυρίως όταν ένα άτομο προσπαθεί να δεσμεύσει μια συγκεκριμένη διαδικασία στην προεπιλεγμένη θύρα και η προεπιλεγμένη θύρα είναι ήδη συνδεδεμένη με μια διαφορετική διαδικασία. Επομένως, σε αυτό το βήμα, θα καθορίσουμε τη θύρα στην οποία πρόκειται να οριοθετηθεί η διαδικασία.

  1. Οι πιθανότητες είναι ότι χρησιμοποιείτε την ακόλουθη εντολή για να δημιουργήσετε μια διαδικασία.
     $ python -m SimpleHTTPS διακομιστής
  2. Αντί για αυτό, χρησιμοποιήστε αυτήν την εντολή για να δημιουργήσετε μια διαδικασία.
     $ python -m SimpleHTTPS διακομιστής (αριθμός θύρας)
  3. Περιμένετε να δημιουργηθεί η διαδικασία και ελέγξτε για να δείτε εάν το πρόβλημα παραμένει.

Λύση 2: Απελευθέρωση της θύρας

Εάν η θύρα χρησιμοποιείται ήδη με διαφορετική διαδικασία, η νέα διαδικασία δεν θα μπορεί να λειτουργήσει σε αυτήν τη θύρα. Επομένως, σε αυτό το βήμα, θα απελευθερώσουμε τη θύρα τερματίζοντας την προηγούμενη διαδικασία και στη συνέχεια θα εκτελέσουμε τη νέα. Γι'αυτό:

  1. Χρησιμοποιήστε την παρακάτω εντολή για να απαριθμήσετε έναν αριθμό διαδικασιών χρησιμοποιώντας μια συγκεκριμένη θύρα.
    $ ps -fA | grep python
  2. Το όρισμα εντολής θα μοιάζει με τις ακόλουθες γραμμές.
     601 88234 12788 0 9:53 μ.μ. ttys000 0: 00.16 python -m SimpleHTTPS διακομιστής
  3. Από αυτό, ο κωδικός διεργασίας που θα χρησιμοποιήσουμε για να σκοτώσουμε είναι "88234".
  4. Χρησιμοποιήστε την ακόλουθη εντολή για να σκοτώσετε τη διαδικασία.
    σκοτώστε 88234

    Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να τη σκοτώσετε.

    sudo kill -9 PID
  5. Τώρα μπορείτε να συνδέσετε τη διαδικασία σε αυτήν τη θύρα χρησιμοποιώντας την ακόλουθη εντολή.
     $ python -m SimpleHTTPS διακομιστής (αριθμός θύρας)
  6. Η διαδικασία θα δημιουργηθεί τώρα.

Λύση 3: Επανεκκίνηση του Raspberry Pi (μόνο για το Raspberry Pi)

Μπορείτε να απαλλαγείτε από αυτό το σφάλμα στο Raspberry Pi επανεκκίνηση του Raspberry Pi ή σκοτώνοντας το κέλυφος του τερματικού. Το Raspberry Pi μερικές φορές δεν μπορεί να σκοτώσει αυτόματα τις διεργασίες και προκαλεί αυτό το σφάλμα λόγω των προηγούμενων διαδικασιών που εκτελούνται ήδη στις θύρες.