Broken pipe出现的时机是:在一个 RST 的套接字继续写数据,就会出现Broken pipe。
下面来模拟 Broken pipe 的情况,服务端代码非常简单,几乎什么都没做,完整的代码见:
node2:/root#tcpdump -S -i eth1 '((tcp) and (host 192.168.137.3) and (port 8080) )'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
00:27:57.885816 IP node2.56882 > node1.webcache: Flags [S], seq 2109269905, win 14600, options [mss 1460,sackOK,TS val 11592824 ecr 0,nop,wscale 7], length 0
00:27:57.886043 IP node1.webcache > node2.56882: Flags [S.], seq 2673199318, ack 2109269906, win 14480, options [mss 1460,sackOK,TS val 1448873 ecr 11592824,nop,wscale 6], length 0
00:27:57.886055 IP node2.56882 > node1.webcache: Flags [.], ack 2673199319, win 115, options [nop,nop,TS val 11592824 ecr 1448873], length 0
00:27:57.886125 IP node2.56882 > node1.webcache: Flags [P.], seq 2109269906:2109269915, ack 2673199319, win 115, o
客户端关闭写后,继续写数据socket.error: [Errno 32] Broken pipe
最新推荐文章于 2024-04-26 08:41:14 发布