แก้ไขข้อผิดพลาด Python Socket 48



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

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



เซิร์ฟเวอร์



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

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



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

โซลูชันที่ 1: การระบุหมายเลขพอร์ต

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

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

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

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

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

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



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

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

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

อ่าน 1 นาที