第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在python中處理管道破損(SIGPIPE)?

如何在python中處理管道破損(SIGPIPE)?

尚方寶劍之說 2019-12-25 10:44:11
我用python編寫了一個簡單的多線程游戲服務(wù)器,該服務(wù)器為每個客戶端連接創(chuàng)建了一個新線程。我發(fā)現(xiàn)每時每刻,服務(wù)器都會由于管道損壞/ SIGPIPE錯誤而崩潰。我很確定程序嘗試將響應(yīng)發(fā)送回不再存在的客戶端時會發(fā)生這種情況。有什么好辦法解決這個問題?我的首選解決方案是簡單地關(guān)閉與客戶端的服務(wù)器端連接并繼續(xù),而不是退出整個程序。
查看完整描述

3 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊

閱讀try:語句。


try:

    # do something

except socket.error, e:

    # A socket error

except IOError, e:

    if e.errno == errno.EPIPE:

        # EPIPE error

    else:

        # Other error


查看完整回答
反對 回復(fù) 2019-12-25
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

SIGPIPE(盡管我認(rèn)為也許是您的意思EPIPE?)在您關(guān)閉套接字然后向其發(fā)送數(shù)據(jù)時,套接字上會發(fā)生這種情況。一種簡單的解決方案是在嘗試發(fā)送套接字?jǐn)?shù)據(jù)之前不關(guān)閉套接字。這也可能發(fā)生在管道上,但這聽起來好像不是您正在經(jīng)歷的,因為它是網(wǎng)絡(luò)服務(wù)器。


您還可以僅在每個線程的某些頂級處理程序中應(yīng)用捕獲異常的創(chuàng)可貼。


當(dāng)然,如果您使用Twisted而不是為每個客戶端連接生成新線程,則可能不會出現(xiàn)此問題。如果多個線程處理同一個I / O通道,則很難正確地完成close和write操作的順序(取決于您的應(yīng)用程序)。


查看完整回答
反對 回復(fù) 2019-12-25
  • 3 回答
  • 0 關(guān)注
  • 890 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號