博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Socket Multicast 通信攻略
阅读量:4608 次
发布时间:2019-06-09

本文共 1394 字,大约阅读时间需要 4 分钟。

Socket Multicast 通信攻略

@IT Monoistの記事、 でも紹介した、SocketによるMulticast通信、実は私かなり嵌ってます。

Wi-Fi LANなどで、アドホックに接続されたデバイスノードに、とりあえずデータを送りつけてデータをシェアしたい、こういう状況は実は結構あるのではないかと思っています。Socketによるコネクションレスの通信UDPを使い、IGMP(Internet Group Management Protocol)という名前のプロトコルを使った通信を使うと、軽い情報を飛ばしあってデータを共有しあう通信を実現することができます。IGMPの詳細に興味のある方は、 を参照してください。IGMPは最近のWi-Fiルーターだったらほとんどサポートしているようで、LANに、Wi-Fi接続できるデバイスであれば活用が可能です。

IGMPを使うには、以下の手順を踏みます。

  1. UDPでSocket接続
  2. グループ通信用に予め決められた、IPアドレス、ポートでグループにJoin
  3. Socketへのデータ送信→グループにJoinしているデバイスノードにデータが送信され受信

手順も凄くシンプル。私はセキュリティの専門家ではないので、断言は出来ませんが、

  • 通信がLANで閉じている
  • グループにJoinしなければデータの送受信は出来ない
  • 送信する相手そのものを明示的には指定できない

という特徴を持っているので、手軽で軽くシンプルで比較的安全な通信方法といえるのではないかと(まちがっていたらごめんなさい)思っています。

例えば、環境センサー付デバイスがネットワークに接続され、環境データを定期的に観測して、ネットにマルチキャストする、送られたデータは、それを使いたいデバイスがグループにJoinして、受信し、それぞれのアプリケーション、サービスで活用、とか、ソーシャルネットのより閉じたミニコミュニティ通信で活用する、とか、クイズへの早押し通知や、何かの投票状況集め、店舗内での特売情報受信とか、まぁ色々と応用が考えられるかなと。

.NET Frameworkでは、この通信を使う為のクラスが用意されていて、それを使えば、比較的簡単にGroup Multicast通信を取り込むことが出来ます。残念ながら、Full .NET、Windows Phone 7向け、.NET Micro Frameworkで全く同じクラスは用意されていません。各フレームワークについては、以下のような感じでクラスが用意されています。

フレームワーク クラス名 備考
Full .NET Socket、または、UdpClient Desktopなど
Sivlerlight UdpAnySourceMulticastClient Windows Phone、RIA、DesktopのOOBアプリ
.NET Micro Framework Socket ちょっと面倒

表のように、同じクラスではないですが、それぞれ使えるクラスを使ってUDP Multicastグループ通信を実装することが可能です。

それぞれの場合の使い方は、今後のブログポストで。

转载于:https://www.cnblogs.com/iphone6/archive/2011/11/16/2250739.html

你可能感兴趣的文章
python_封装redis_hash方法
查看>>
《windows程序设计》获取窗口尺寸(05)
查看>>
【重点突破】——Canvas技术绘制音乐播放器界面
查看>>
监控级联时各个层的PoE交换机怎么选?
查看>>
存储过程
查看>>
ADO.NET--SqlConnection、SqlCommand的学习
查看>>
PCA降维处理
查看>>
random模块
查看>>
CSS3 新属性兼容性测试
查看>>
js闭包
查看>>
Oralce导入数据库出现某一列的值太大
查看>>
Union和Union All 的区别
查看>>
sql server 2005函数
查看>>
innotop
查看>>
jmeter 取样器--http请求详解
查看>>
【转载】Understanding the Objective-C Runtime
查看>>
aabb碰撞检测
查看>>
Xshell连接Linux
查看>>
20180530
查看>>
项目复审——Alpha阶段
查看>>