- - PR -
マイコンとVB6アプリとのUDPでの通信
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-17 14:56
とろさん
ブロードキャストはIPで 255.255.255.255(自セグメント宛)か ネットワークアドレス+全ビットオン(任意のセグメント宛) 192.168.1.0がネットワークアドレスなら192.168.1.255 とするようです。 全ビットオフというのは、かなり昔にそういうのもできたということで、 また任意のセグメント宛というのは、今は遮断されるので使用しない。 が一般的なようです。 | ||||
|
投稿日時: 2008-12-17 16:31
もしかしてもっと基本的なところで、VB6側でsetsockoptを
忘れていたりしませんよね?SO_BROADCASTオプションを 指定しないと、ブロードキャストで送受信できません。 | ||||
|
投稿日時: 2008-12-17 20:44
progmanさん失礼しました。m(_ _)m
要件の脳内置換が誤っていたようです。 当初の質問内容が、マイコン側の情報発信を特定IPアドレスに対する実装でなく、 ブロードキャスト的に行いたいという要件だと読み取れておりませんでした。 測定器等の採取データを扱う場合を想定し、通常ならマイコン等じゃなく収集用 PC経由で情報通信するケースをベースに迂闊なコメントしていました。 # ココの常連さんなら「また延髄レスか」と思ったかも知れません。 # 最近は私的に忙しい状況なので斜め読みでコメントする危険性が高いので、 # 注意しなきゃ拙いと深く反省・・・。 本題に戻って、みかほし(変換が難しいw)さんの指摘(詳細は理解できてないw) の他の対応としてはマイコン側のUDPパケットの生成時にIPヘッダ部分の相手先IP アドレスをブロードキャストアドレス宛にする方法なども試す価値はあろうかと 思われます。 とろさん 最後になって恐縮ですがおかしな方向へ脱線させたことお詫びします。 | ||||
|
投稿日時: 2008-12-17 23:52
BackDoorさん、甕星さん、progmanさん
回答ありがとうございます。
現象は上のprogmanさんの図の通りです。 マイコンにはプロトコルスタックやOSはのせてはいません。 RS-232Cなどの代わりにEthernetを使って通信してみようという考えで使いました。 (これはprogmanさんのいう任意のイーサパケットを送信といった方法になるのかな?) 皆様からの回答から、 マイコンの相手先IPアドレスにブロードキャストアドレス を指定してPC側で受信できるか実験してみようと思います。 甕星さんからの指摘である、setsockoptも調査します(初めて知りました)。 脱線したかもしれませんが色々な意見が聞けて勉強になりました。 (私の説明がまずかったので脱線の原因になったような。。。) 本当にありがとうございました。 | ||||
|
投稿日時: 2008-12-18 06:58
少々説明不足だったかも。
この部分ですが、評価して欲しいには「PC側でUDPパケットを受け取れるか」だけ でなく「ブロードキャストドメイン内の受信対象外のPCへ悪影響が無いか」まで の評価を行なって下さい。 → 状況によっては常時ブロードキャストが流れっぱなしの状況になりますから。 # 肝心なことも書き漏らすようじゃ駄目ですねw | ||||
|
投稿日時: 2008-12-18 09:37
レガシーな話題ですね。
マルチキャスト(宛先IP:224.0.0.0/を、使えば良いのではないでしょうか? これならミニコンからのデータ送信1回で複数のPCで受信できるはずです。 PCで netstat -r を実行して経路に224.0.0.0があれば適合しています。 ネット越しに動作させるにはNW機器の対応と設定が必要ですが、 同一セグメントなら、お手軽にできると思います。 MACアドレスについては、下記参照願います。 http://www.n-study.com/network/multicast5.htm _________________ _福田太郎_ |