![Unix 域套接字中断的可能情况](https://linux22.com/image/190309/Unix%20%E5%9F%9F%E5%A5%97%E6%8E%A5%E5%AD%97%E4%B8%AD%E6%96%AD%E7%9A%84%E5%8F%AF%E8%83%BD%E6%83%85%E5%86%B5.png)
TCP
使用& socket时UDP
,有很多场景会导致连接中断(连接慢、网络重置等)。是否有可能unix domain socket
因外部原因而自动断开或中断的情况?开发人员是否应该考虑代码可能出现的中断?
答案1
无论使用哪种类型的套接字或 IPC 机制,服务器总是有可能意外终止。发生这种情况的原因有很多,例如:
它可能会因软件错误而崩溃,因为由于分段错误或断言失败
它可能会占用太多内存,并可能被 Linux OOM Killer 杀死(这在虚拟机中很容易重现)
它可能被其他用户错误地杀死。 Linux 是多用户系统,有人可能会意外杀死您的进程,说他们想输入
kill 1112
但输入kill 1111
了
开发人员是否应该考虑代码可能出现的中断?
是的,他们总是应该这样做。阅读您要使用的函数的手册页,并阅读该函数可以设置的所有可能的 errnos 值,并始终为最坏的情况做好准备。