方法論としては、たとえばDBサーバに対してログを記録しつつ、それを参照したりといったスター型の構築も出来た(そして今考えれば、そっちが多分簡単だった)けど、ここはあえて、プログラム間で相互に通信を行うことで、他のプログラムの稼動状況を監視してみよう、と思い立った。苦難の道の始まりだったのだけど。
プログラム間で相互に小さなメッセージをやりとりすることで監視する、という方法論に適しているのは、やはりオーバヘッドが少なく、かつ接続を占有しないUDPだろうと思う。最大で10台くらいが相互に監視しあう状況になるので、わざわざTCPでコネクション貼ることもないだろう。
開発言語はVB.NET。すなわち.NETフレームワークの世界でそれを記述することになる。
.NETフレームワーク2.0では、きっちりUDPの非同期通信がサポートされている。
System.Net.Sockets.UdpClientがそれだ。
まず不特定との相手先と通信するためのソケットをインスタンスとして生成する。
続きを読む