Python Soket Hatası 48'i Düzeltin



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Soket Hatası 48, işlem kendisini zaten kullanımda olan bir bağlantı noktasına bağlamayı denediğinde tetiklenen bir python hatasıdır.



Sunucular



“Socket.error: [Errno 48] Adres zaten kullanımda” Hatasına Neden Olan Nedir?

Kısa bir araştırmadan sonra nedenleri bulduk:



  • Bağlantı Noktasına Bağlı İşlem: Sunucuda bir işlem oluşturulduğunda, onun tarafından internet ile iletişim kurmak için bir bağlantı noktası kullanılır. Liman, her seferinde bir misafiri ağırlayabilecek bir ev sahibi gibidir. Ancak, bir bağlantı noktası belirtmezseniz, sunucu bunu varsayılan bağlantı noktasında oluşturur. Bir sonraki işlem oluşturduğunuzda, varsayılan bağlantı noktası zaten kullanımda olduğundan bir bağlantı noktası belirtilmelidir.

1.Çözüm: Bağlantı Noktası Numarasını Belirleme

Hata, çoğunlukla bir kişi belirli bir işlemi varsayılan bağlantı noktasına bağlamaya çalıştığında ve varsayılan bağlantı noktası zaten farklı bir işleme bağlı olduğunda tetiklenir. Bu nedenle, bu adımda, işlemin sınırlanacağı bağlantı noktasını belirleyeceğiz.

  1. Muhtemelen, bir işlem oluşturmak için aşağıdaki komutu kullanıyorsunuz.
    $ python -m SimpleHTTPServer
  2. Bunun yerine, bir işlem oluşturmak için bu komutu kullanın.
    $ python -m SimpleHTTPServer (Bağlantı Noktası Numarası)
  3. İşlemin oluşturulmasını bekleyin ve sorunun devam edip etmediğini kontrol edin.

2.Çözüm: Bağlantı Noktasını Serbest Bırakma

Eğer Liman zaten farklı bir işlem tarafından kullanılıyorsa, yeni işlem bu bağlantı noktasında çalışamaz. Bu nedenle, bu adımda önceki işlemi sonlandırıp yenisini çalıştırarak portu serbest bırakacağız. Bunun için:

  1. Belirli bir bağlantı noktasını kullanan bir dizi işlemi listelemek için aşağıdaki komutu kullanın.
    $ ps -fA | grep python
  2. Komut argümanı aşağıdaki satırlara benzeyecektir.
    601 88234 12788 0 9:53 PM ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Bunun dışında öldürmek için kullanacağımız işlem kodu “88234” dür.
  4. İşlemi sonlandırmak için aşağıdaki komutu kullanın.
    88234'ü öldür

    Alternatif olarak, onu öldürmek için aşağıdaki komutu kullanabilirsiniz.



    sudo öldürme -9 PID
  5. Şimdi aşağıdaki komutu kullanarak işlemi bu bağlantı noktasına bağlayabilirsiniz.
    $ python -m SimpleHTTPServer (Bağlantı Noktası Numarası)
  6. İşlem şimdi oluşturulacak.

3. Çözüm: Raspberry Pi'yi Yeniden Başlatma (Yalnızca Raspberry Pi İçin)

Bu hatadan kurtulabilirsiniz Ahududu Pi Raspberry Pi'yi yeniden başlatarak veya terminal kabuğunu öldürerek. Raspberry Pi bazen işlemleri otomatik olarak öldüremez ve bağlantı noktalarında zaten çalışan önceki işlemler nedeniyle bu hatayı tetikler.

1 dakika okundu