Betulkan Ralat Python Socket 48



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Ralat Soket 48 adalah ralat python yang dicetuskan ketika proses itu cuba mengikat dirinya ke port yang sudah digunakan.



Pelayan



Apa yang menyebabkan ralat 'socket.error: [Errno 48] Alamat sudah digunakan'?

Setelah membuat kajian ringkas, kami menjumpai sebab-sebabnya:



  • Proses Terikat ke Pelabuhan: Setiap kali proses dibuat di pelayan, port digunakan olehnya untuk berkomunikasi dengan internet. Pelabuhan itu seperti tuan rumah yang dapat menghiburkan seorang tetamu pada satu masa. Namun, jika anda tidak menentukan port, pelayan hanya membuatnya di port lalai. Kali berikutnya anda membuat proses, port harus ditentukan kerana port lalai sudah digunakan.

Penyelesaian 1: Menentukan Nombor Port

Kesalahan itu kebanyakannya dicetuskan apabila seseorang cuba mengikat proses tertentu ke port lalai dan port lalai sudah terikat dengan proses yang berbeza. Oleh itu, dalam langkah ini, kita akan menentukan port di mana prosesnya akan dibatasi.

  1. Kemungkinannya, anda menggunakan perintah berikut untuk membuat proses.
    $ python -m SimpleHTTPSPerver
  2. Daripada ini, gunakan arahan ini untuk membuat proses.
    $ python -m SimpleHTTPSPerver (Nombor Port)
  3. Tunggu proses dibuat dan periksa untuk melihat apakah masalah itu berlanjutan.

Penyelesaian 2: Membebaskan Pelabuhan

Sekiranya pelabuhan sudah digunakan oleh proses yang berbeza, proses baru tidak akan dapat berfungsi di port tersebut. Oleh itu, dalam langkah ini, kita akan membebaskan port dengan menghentikan proses sebelumnya dan kemudian menjalankan yang baru. Untuk itu:

  1. Gunakan arahan berikut untuk menyenaraikan sejumlah proses menggunakan port tertentu.
    $ ps -fA | grep python
  2. Argumen perintah akan kelihatan seperti baris berikut.
    601 88234 12788 0 9:53 PM ttys000 0: 00.16 python -m SimpleHTTPSPerver
  3. Dari ini, kod proses yang akan kita gunakan untuk membunuh adalah '88234'.
  4. Gunakan arahan berikut untuk membunuh prosesnya.
    bunuh 88234

    Sebagai alternatif, anda boleh menggunakan arahan berikut untuk membunuhnya.



    sudo kill -9 PID
  5. Anda kini boleh mengikat proses ke port ini dengan menggunakan perintah berikut.
    $ python -m SimpleHTTPSPerver (Nombor Port)
  6. Prosesnya sekarang akan dibuat.

Penyelesaian 3: Memulakan Semula Raspberry Pi (Hanya Untuk Raspberry Pi)

Anda boleh menyingkirkan ralat ini di Pai raspberi dengan menghidupkan semula Raspberry Pi atau dengan membunuh shell terminal. Kadang-kadang Raspberry Pi tidak dapat membunuh proses secara automatik dan mencetuskan ralat ini kerana proses sebelumnya sudah berjalan di port.

1 minit dibaca