gpt4 book ai didi

c - 是什么导致破管错误?

转载 作者:太空狗 更新时间:2023-10-29 16:16:02 24 4
gpt4 key购买 nike

我知道当对等端的套接字关闭时会抛出 broken pipe 错误。

但是,在我的测试中,我注意到当对等端关闭时在这一端立即“发送”调用并不总是导致管道损坏错误。

例如:

在对等端关闭套接字后(我尝试通过调用 close 进行干净关闭,也尝试通过终止对等端异常关闭),如果我尝试发送 40 个字节,那么我不会得到一个损坏的管道,但是,如果我尝试发送 40000 个字节,然后立即出现管道损坏错误。

究竟是什么原因导致管道破裂,其行为是否可以预测?

最佳答案

观察网络关闭可能需要一些时间 - 总时间名义上大约为关闭后 2 分钟(是的,分钟!),然后假定发往该端口的数据包全部失效。在某个时刻检测到错误情况。对于小写,您处于系统的 MTU 内,因此消息排队等待发送。大写,你比 MTU 更大,系统更快地发现问题。如果您忽略 SIGPIPE 信号,那么函数将在管道损坏时返回 EPIPE 错误 - 在检测到连接断开的某个时刻。

关于c - 是什么导致破管错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com