多対多の非同期なコマンド処理とデータグラムソケットの相性が良すぎる件

なぜか今頃になって、データグラムソケットのすばらしさに気づいた。
多対多の非同期であいまいな(1つ1つのコマンドにあまり重要性を持たせない)コマンド処理にぴったし。1コマンドセットを1データグラムにのせる。
今はまだプログラム内だけの仮想的なネットワーク空間でしか使えない仮想的なデータグラムソケットを使っているのだけど、考え方は本物のソケットと同じなので、すばらしいことに変わりなし。
ストリーム型の場合だと、頻繁に行ったり沢山増えてくると気になる接続処理やコネクションの保持など気にしなくてよい。
データグラムが送信先に届いたか分からないなどの不便な部分は、アプリケーション層で実装すれば全く気にならない。送信処理と生存確認処理を別スレッド行うなどの方法も可能なので、たとえば、送信処理は、単に送信するだけしておいて、生存確認処理では、各当ホストから一定期間受信がなければ、生存確認(pingのようなもの)を試行してみて、生存反応がなければ、送信処理側にホストが停止していることを通知するなどとすると、送信毎のチェック処理が必要なくなるので、そこそこのパフォーマンスを出せる。送信、受信、生存確認は完全に独立した処理にもできる。(送信データのロスなど気にしない)