แก้ไข Python Socket Error 48

Socket Error 48 เป็นข้อผิดพลาดของ python ซึ่งเกิดขึ้นเมื่อกระบวนการพยายามผูกตัวเองกับพอร์ตที่มีการใช้งานอยู่แล้ว

อะไรทำให้เกิดข้อผิดพลาด "socket.error: [Errno 48] Address ถูกใช้งานแล้ว"

หลังจากการวิจัยสั้น ๆ เราพบว่าสาเหตุคือ:

แนวทางที่ 1: การระบุหมายเลขพอร์ต

ข้อผิดพลาดมักเกิดขึ้นเมื่อบุคคลพยายามผูกกระบวนการเฉพาะกับพอร์ตเริ่มต้น และพอร์ตเริ่มต้นถูกผูกไว้กับกระบวนการอื่นแล้ว ดังนั้น ในขั้นตอนนี้ เราจะระบุพอร์ตที่กระบวนการจะถูกผูกไว้

  1. เป็นไปได้ว่าคุณกำลังใช้คำสั่งต่อไปนี้เพื่อสร้างกระบวนการ
     $ python -m SimpleHTTPServer
  2. ให้ใช้คำสั่งนี้เพื่อสร้างกระบวนการแทน
     $ python -m SimpleHTTPServer (หมายเลขพอร์ต)
  3. รอให้กระบวนการถูกสร้างขึ้นและตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

โซลูชันที่ 2: การเพิ่มพื้นที่ว่างในพอร์ต

ถ้า ท่าเรือ ถูกใช้ไปแล้วโดยกระบวนการอื่น กระบวนการใหม่จะไม่สามารถทำงานบนพอร์ตนั้นได้ ดังนั้น ในขั้นตอนนี้ เราจะล้างพอร์ตโดยยกเลิกกระบวนการก่อนหน้าแล้วเรียกใช้กระบวนการใหม่ สำหรับการที่:

  1. ใช้คำสั่งต่อไปนี้เพื่อแสดงรายการกระบวนการต่างๆ โดยใช้พอร์ตเฉพาะ
    $ ps -fA | grep python
  2. อาร์กิวเมนต์คำสั่งจะมีลักษณะเหมือนบรรทัดต่อไปนี้
     601 88234 12788 0 21:53PM ttys000 0:00.16 python -m SimpleHTTPServer
  3. จากนี้ โค้ดกระบวนการที่เราจะใช้เพื่อฆ่าคือ “88234”
  4. ใช้คำสั่งต่อไปนี้เพื่อฆ่ากระบวนการ
    ฆ่า 88234

    หรือคุณสามารถใช้คำสั่งต่อไปนี้เพื่อฆ่ามัน

    sudo kill -9 PID
  5. ตอนนี้คุณสามารถผูกกระบวนการกับพอร์ตนี้โดยใช้คำสั่งต่อไปนี้
      $ python -m SimpleHTTPServer (หมายเลขพอร์ต)
  6. กระบวนการนี้จะถูกสร้างขึ้น

โซลูชันที่ 3: รีสตาร์ท Raspberry Pi (สำหรับ Raspberry Pi เท่านั้น)

คุณสามารถกำจัดข้อผิดพลาดนี้ได้บน ราสเบอร์รี่ปี่ โดยการรีสตาร์ท Raspberry Pi หรือโดยการฆ่าเทอร์มินัลเชลล์ Raspberry Pi บางครั้งไม่สามารถฆ่ากระบวนการโดยอัตโนมัติและทำให้เกิดข้อผิดพลาดนี้เนื่องจากกระบวนการก่อนหน้านี้ทำงานบนพอร์ตอยู่แล้ว

Facebook Twitter Google Plus Pinterest