gpt4 book ai didi

linux - 我们在使用套接字时应该处理什么错误

转载 作者:可可西里 更新时间:2023-11-01 02:54:37 26 4
gpt4 key购买 nike

在使用非阻塞套接字与客户端通信时,除了直接调用 close() 之外,我们还必须注意和处理哪些错误代码?任何人都可以列出它们并就我们必须做的额外工作提出一些意见吗?

目前我们只处理 EAGAIN 和 EWOULDBLOCK,对于所有其他错误我们只关闭套接字。这种套接字异常例程是否足以用于服务器软件?

最佳答案

我认为您基本上是正确的。我的代码重试了另外两个暂时性错误而不是关闭套接字,它们是:

EINTR - 如果系统调用被信号传递中断,则可以返回。通常适当的响应是再次尝试系统调用。 (有关为什么会发生这种情况的详细信息,请参阅 here)

ENOBUFS - 在某些情况下,如果网络接口(interface)的输出队列已满,send() 可以返回此信息。 (是的,您希望 send() 返回 EWOULDBLOCK 或 EAGAIN,但我已经看到它返回了)

关于linux - 我们在使用套接字时应该处理什么错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139797/

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