TCP
&ソケットを使用すると、UDP
接続が中断(遅い接続、ネットワークリセットなど)を引き起こす可能性がある多くのシナリオがあります。unix domain socket
外部的な理由で自動接続が切断または中断される可能性はありますか?開発者はコードで発生する可能性がある中断を考慮する必要がありますか?
答え1
使用されているソケットの種類やIPCメカニズムに関係なく、サーバーが予期せず終了する可能性は常にあります。これは、次のようなさまざまな理由で発生する可能性があります。
分割エラーやアサーションの失敗によるソフトウェアのバグがクラッシュすることがあります。
あまりにも多くのメモリを占有し、Linux OOM Killerによってシャットダウンする可能性があります。 (仮想マシンで簡単に再現可能)
誤って他のユーザーが終了した可能性があります。 Linuxはマルチユーザーシステムなので、誰かが入力したかったのですが、入力したと言って誤ってプロセスを終了する可能性があり
kill 1112
ますkill 1111
。
開発者はコードで発生する可能性がある中断を考慮する必要がありますか?
はい。常にそうする必要があります。使用したい関数のマニュアルページを読んで、関数が設定できるすべての可能なerrnos値を読んで、常に最悪のシナリオに備えてください。