Unix 域套接字中断的可能情况

Unix 域套接字中断的可能情况

TCP使用& socket时UDP,有很多场景会导致连接中断(连接慢、网络重置等)。是否有可能unix domain socket因外部原因而自动断开或中断的情况?开发人员是否应该考虑代码可能出现的中断?

答案1

无论使用哪种类型的套接字或 IPC 机制,服务器总是有可能意外终止。发生这种情况的原因有很多,例如:

  • 它可能会因软件错误而崩溃,因为由于分段错误或断言失败

  • 它可能会占用太多内存,并可能被 Linux OOM Killer 杀死(这在虚拟机中很容易重现)

  • 它可能被其他用户错误地杀死。 Linux 是多用户系统,有人可能会意外杀死您的进程,说他们想输入kill 1112但输入kill 1111

开发人员是否应该考虑代码可能出现的中断?

是的,他们总是应该这样做。阅读您要使用的函数的手册页,并阅读该函数可以设置的所有可能的 errnos 值,并始终为最坏的情况做好准备。

相关内容