2008年04月14日

VB.NETでUDP非同期通信

(少々内容の修正をしました)

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