何かが起こったときに、あるプロセスから別のプロセスにUDPソケットを介して1バイトのメッセージが送信されるシステムがあります。受信側では、このイベントが 1 回発生したか、12 回発生したか、100 万回発生したかは問題ではありません。
役に立たない recvfrom() 呼び出しを何度も行うのではなく、setsockopt を使用して SO_RCVBUF を 1 に設定することで、システムが最初のメッセージ以外のすべてを単純に無視するようにすることができるのではないかと考えました (メッセージが読み取られて別のメッセージが許可されるまで)。ただし、グーグルで検索すると、これが 100% 移植可能ではない可能性があるという証拠がいくつか見つかりました (システムによっては、最小サイズを静かに強制しているように見えますか?)。
だから、これを試す作業に入る前に、これがどれくらいうまくいくか知っている人がいるかどうか疑問に思っていました. これは Red Hat Linux の場合です。