在前篇遺留了一個(gè)問(wèn)題,為什么在對(duì)端發(fā)送了[RST,ACK]報(bào)文后,在服務(wù)端沒(méi)有收到ConnectionResetError異常,而是發(fā)生了BrokenPipeError異常壶栋,我們通過(guò)前篇提到的代碼分析過(guò)程如下:
這里面涉及兩個(gè)主要技術(shù)點(diǎn):
1,recv返回空串的原因普监,參考man recv的返回值為0時(shí)的描述
2贵试,connection reset by peer異常和Broken pipe異常機(jī)制,參考:broken pipe 和 connection reset by peer的區(qū)別