VB.NETでUDPマルチキャストの送受信をする

VB.NETを使ってUDPマルチキャストの送受信のプログラムを組む機会がありました。

ネットで調べたのですが、コレ!っていう情報があまりなかったので、ちょっと苦労しました。

(C#の記事は結構あるのに、VB.NETは少ない、、、)

なので、忘れないようにやり方をメモしておきます。

(この記事を参考にされる方は開発環境等の違いに注意してください)

スポンサーリンク

前提条件

  1. OS:Windows10 Pro
  2. 環境:VisualStudio2017 Community
  3. ファイアウォールの設定はガバガバ

マルチキャストとは

私自身あまりネットワーク系に強くないので、勉強ついでに

そもそもマルチキャストとは何か?について軽く触れておきます。(詳しくはWikiで)

マルチキャストとは1対多の通信を行う通信方式です。

あらかじめネットワーク上にマルチキャストグループというものを作っておいて、このグループにパケットを送信すると、グループに参加しているすべてのコンピュータにパケットが送信されます。

マルチキャストグループには一意のIPが割り振られていて、このIPはクラスD(224.0.0.0 ~ 239.255.255.255)にしなければいけません。

マルチキャストグループにパケットを送信するときは、このマルチキャスト用IPがあて先のIPということになります。

プログラムの流れ

マルチキャストの仕組みから、プログラムの流れは以下のようになります。

受信

  1. 受信するポートやマルチキャストIPを決める
  2. ソケット作成
  3. マルチキャストグループに参加(join)
  4. 受信開始

送信

  1. 送信するポートやマルチキャストIPを決める
  2. ソケット作成
  3. マルチキャストグループに参加(join)
  4. 何か送信

(送信も受信もほぼ同じ)

ソース

ソースは必要な部分の抜粋です。

ソリューション全体はGitHubに置いているので、必要であれば自由にダウンロードしてください。

同期/非同期の2種類作成しました。

実際組んだソースは以下のようになりました。

参考サイト

UDPによりデータの送受信を行う

マルチキャスト編。 · GitHub

 

スポンサーリンク


コメントを残す

メールアドレスが公開されることはありません。