Armadilloフォーラム

UDPブロードキャストが出ない

takahashi-h

2024年6月14日 16時09分

Armadillo-X2にて1対1のUDP送受信はできるけど、ブロードキャストが出ない状態で困っております。

ABOSDEの、Python New ProjectからPythonで開発しています。
(ラズパイで開発済みのコードを移植中、本件で困っている状態)

 Armadillo-X2 192.168.0.1 (送信元)
 PC 192.168.0.2 (受信確認用)

 ※他にも同じネットワーク上に別装置がいます

<コード>
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(b'test', ('255.255.255.255', 50000))
 ※ラズパイ時はこれで送信されていた

<確認したこと>
①「TCP/UDPの送信はできるけど受信ができない」
 https://armadillo.atmark-techno.com/forum/armadillo/20695
 でご教示いただいた方法で、
  app.conf
 に
  add_ports 50000:50000/udp
 を追加してみた。
 →×

②送信先を
  255.255.255.255→192.168.0.255
 に変更してみた。
 →×

 ※ちなみに、192.168.0.2にすると受信しますが、ブロードキャストではない。

コメント

at_reika.yamazaki

2024年6月14日 18時12分

お世話になっております。
山崎です。

コード内のアドレスですが、"255.255.255.255" を "192.168.255.255" にしてみるとどうなるでしょうか?
もし上記でもうまくいかない場合は app.conf に "set_network host" を追加することで、
ホスト側のネットワークをすべてコンテナに渡すことができます。こちらだといかがでしょうか。

以上、お確かめいただけますと幸いです。
どうぞよろしくお願いいたします。

山崎様、ご提案ありがとうございました。

 →ブロードキャストするようになりました。
  ありがとうございます。

<詳細>
> "255.255.255.255" を "192.168.255.255" にしてみる
→これはダメでした。

> app.conf に "set_network host" を追加する
→こちらでOKでした。
 ちなみに、このとき
  ○ "255.255.255.255"
  × "192.168.255.255"
  ○ "192.168.0.255"
 という結果でした。
 (元々のプログラムの"255.255.255.255"としました)

at_reika.yamazaki

2024年6月14日 19時10分

お世話になっております。
山崎です。

意図した動きになったということで了解です。
こちらでも確認しておりますが、コンテナからの broadcast を行うには、コンテナの設定ファイルに "set_network host" を追加する方法が良さそうです。
"set_network host" をお使いください。

以上、どうぞよろしくお願い致します。