แก้ไข Python Socket Error 48
Socket Error 48 เป็นข้อผิดพลาดของ python ซึ่งเกิดขึ้นเมื่อกระบวนการพยายามผูกตัวเองกับพอร์ตที่มีการใช้งานอยู่แล้ว
อะไรทำให้เกิดข้อผิดพลาด "socket.error: [Errno 48] Address ถูกใช้งานแล้ว"
หลังจากการวิจัยสั้น ๆ เราพบว่าสาเหตุคือ:
แนวทางที่ 1: การระบุหมายเลขพอร์ต
ข้อผิดพลาดมักเกิดขึ้นเมื่อบุคคลพยายามผูกกระบวนการเฉพาะกับพอร์ตเริ่มต้น และพอร์ตเริ่มต้นถูกผูกไว้กับกระบวนการอื่นแล้ว ดังนั้น ในขั้นตอนนี้ เราจะระบุพอร์ตที่กระบวนการจะถูกผูกไว้
- เป็นไปได้ว่าคุณกำลังใช้คำสั่งต่อไปนี้เพื่อสร้างกระบวนการ
$ python -m SimpleHTTPServer
- ให้ใช้คำสั่งนี้เพื่อสร้างกระบวนการแทน
$ python -m SimpleHTTPServer (หมายเลขพอร์ต)
- รอให้กระบวนการถูกสร้างขึ้นและตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
โซลูชันที่ 2: การเพิ่มพื้นที่ว่างในพอร์ต
ถ้า ท่าเรือ ถูกใช้ไปแล้วโดยกระบวนการอื่น กระบวนการใหม่จะไม่สามารถทำงานบนพอร์ตนั้นได้ ดังนั้น ในขั้นตอนนี้ เราจะล้างพอร์ตโดยยกเลิกกระบวนการก่อนหน้าแล้วเรียกใช้กระบวนการใหม่ สำหรับการที่:
- ใช้คำสั่งต่อไปนี้เพื่อแสดงรายการกระบวนการต่างๆ โดยใช้พอร์ตเฉพาะ
$ ps -fA | grep python
- อาร์กิวเมนต์คำสั่งจะมีลักษณะเหมือนบรรทัดต่อไปนี้
601 88234 12788 0 21:53PM ttys000 0:00.16 python -m SimpleHTTPServer
- จากนี้ โค้ดกระบวนการที่เราจะใช้เพื่อฆ่าคือ “88234”
- ใช้คำสั่งต่อไปนี้เพื่อฆ่ากระบวนการ
ฆ่า 88234
หรือคุณสามารถใช้คำสั่งต่อไปนี้เพื่อฆ่ามัน
sudo kill -9 PID
- ตอนนี้คุณสามารถผูกกระบวนการกับพอร์ตนี้โดยใช้คำสั่งต่อไปนี้
$ python -m SimpleHTTPServer (หมายเลขพอร์ต)
- กระบวนการนี้จะถูกสร้างขึ้น
โซลูชันที่ 3: รีสตาร์ท Raspberry Pi (สำหรับ Raspberry Pi เท่านั้น)
คุณสามารถกำจัดข้อผิดพลาดนี้ได้บน ราสเบอร์รี่ปี่ โดยการรีสตาร์ท Raspberry Pi หรือโดยการฆ่าเทอร์มินัลเชลล์ Raspberry Pi บางครั้งไม่สามารถฆ่ากระบวนการโดยอัตโนมัติและทำให้เกิดข้อผิดพลาดนี้เนื่องจากกระบวนการก่อนหน้านี้ทำงานบนพอร์ตอยู่แล้ว