Socket

Unix 域套接字中斷的可能場景

  • May 3, 2021

使用TCP& UDPsockets時,有很多場景會導致連接中斷(連接慢、網路重置等)。unix domain socket是否存在由於外部原因而自動斷開或中斷的任何可能情況?開發人員是否應該考慮程式碼中可能出現的中斷?

無論使用何種類型的套接字或 IPC 機制,伺服器總是有可能意外終止。它可能由於許多不同的原因而發生,例如:

  • 它可能由於軟體錯誤而崩潰,因為由於分段錯誤或斷言失敗
  • 它可能會佔用太多記憶體並且可能被 Linux OOM 殺手殺死(它很容易在虛擬機中重現)
  • 它可能被另一個使用者錯誤地殺死。Linux 是多使用者系統,有人可能會意外殺死您的程序,比如他們想輸入kill 1112但輸入kill 1111

開發人員是否應該考慮程式碼中可能出現的中斷?

是的,他們總是應該的。閱讀您將要使用的函式的手冊頁,並閱讀該函式可以設置的所有可能的 errnos 值,並始終為最壞的情況做好準備。

引用自:https://unix.stackexchange.com/questions/646907