คำถามติดแท็ก broken-pipe

10
วิธีป้องกัน SIGPIPE (หรือจัดการอย่างถูกต้อง)
ฉันมีโปรแกรมเซิร์ฟเวอร์ขนาดเล็กที่ยอมรับการเชื่อมต่อบนซ็อกเก็ต TCP หรือ UNIX ในพื้นที่อ่านคำสั่งง่าย ๆ และส่งคำตอบกลับขึ้นอยู่กับคำสั่ง ปัญหาคือไคลเอนต์อาจไม่สนใจคำตอบในบางครั้งและออกก่อนเวลาดังนั้นการเขียนลงในซ็อกเก็ตนั้นจะทำให้เกิด SIGPIPE และทำให้เซิร์ฟเวอร์ของฉันทำงานล้มเหลว การปฏิบัติที่ดีที่สุดในการป้องกันความผิดพลาดคืออะไร มีวิธีการตรวจสอบว่าอีกด้านของบรรทัดยังอ่านอยู่หรือไม่? (select () ดูเหมือนจะไม่ทำงานที่นี่เพราะมันบอกว่าซ็อกเก็ตเขียนได้เสมอ) หรือฉันควรจับ SIGPIPE ด้วยเครื่องจัดการและเพิกเฉย?
260 c  io  signals  broken-pipe  sigpipe 

4
วิธีป้องกันท่อแตก errno 32?
ตอนนี้ฉันใช้แอพที่สร้างขึ้นใน python เมื่อฉันเรียกใช้ในคอมพิวเตอร์ส่วนบุคคลมันทำงานได้โดยไม่มีปัญหา อย่างไรก็ตามเมื่อฉันย้ายไปยังเซิร์ฟเวอร์ที่ใช้งานจริง มันแสดงให้ฉันเห็นข้อผิดพลาดที่แนบมาดังต่อไปนี้:. ฉันได้ทำการวิจัยและได้รับเหตุผลที่เบราว์เซอร์ของผู้ใช้ปลายทางหยุดการเชื่อมต่อในขณะที่เซิร์ฟเวอร์ยังคงยุ่งอยู่กับการส่งข้อมูล ฉันสงสัยว่าทำไมมันถึงเกิดขึ้นและอะไรคือสาเหตุที่ทำให้ไม่สามารถทำงานได้อย่างถูกต้องในเซิร์ฟเวอร์ที่ใช้งานจริงในขณะที่มันทำงานบนคอมพิวเตอร์ส่วนบุคคลของฉัน คำแนะนำใด ๆ ที่ชื่นชม Exception happened during processing of request from ('127.0.0.1', 34226) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request self.RequestHandlerClass(request, client_address, self) File …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.