私が理解しているように、UDP は信頼できないプロトコルです。私が取り組んでいるプロジェクトの1つでは、2つのプロセス間のIPCの手段としてローカルUDPソケットが提案されています。ローカル UDP は完全に信頼できますか? だと思いますが、確認したいだけです。
もしそうなら、ローカルUDPとドメインソケットの違いは何ですか?
ありがとう、
UDP はどのような状況でも信頼できません。たとえば、受信者がメッセージの到着と同じ速さでメッセージを読み取っていない場合、受信バッファがオーバーフローし、追加のメッセージはすべて破棄されます。
UDP とドメイン ソケットの違いは、ドメイン ソケットは事実上、別のソケットと通信する 2 つのソケットに過ぎないのに対し、UDP は 2 つのソケットの間に IP スタックの 2 つのインスタンスを固定することです。ここにかなり良い説明があります:
保証はありません。やっぱりUDPです。誰かの実装は、あなたが送信した 1 秒おきのパケットをローカルまたはリモートで無視するだけで、有効な実装である可能性があります。
実際には、ユーザーと他のプロセスとの間にいくつかのレベルの OS 相互作用があり、いずれも何らかの理由で失敗する可能性があります。
名前付きパイプまたは類似のものがより良いオプションかもしれません。または、信頼できるソケットが必要な場合は、TCP.