問題タブ [broadcast]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - SO_BINDTODEVICE Linux ソケット オプションに関する問題
2 枚のネットワーク カードを搭載した PC があります。1 つ ( eth0
) は LAN/インターネット用で、もう 1 つは 1 つのマイクロコントローラー デバイスとの UDP 通信用です。マイクロコントローラーには、IP (192.168.7.2) と MAC アドレスがあります。2 番目の PC ネットワーク アダプタ ( eth1
) は 192.168.7.1 です。
マイクロコントローラーには非常に単純な IP スタックがあるため、MC が UDP パケットを送信する最も簡単な方法は、それらをブロードキャストすることです。
PC 側でブロードキャストを受信したいのですが、 からのみですeth1
。そこで、UDP ソケットをeth1
デバイスにバインドしようとしました。
問題(以下のソースコード):
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, device, sizeof(device))
root 権限が必要なのですが、なぜですか? (他のオプションの設定はユーザーとして機能します)getsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, (void *)buffer, &opt_length)
「プロトコルが利用できません」と表示されます。setsockopt
コマンドで設定したデバイスを読み返したい。どこで良い情報を見つけることができますか? Linux プログラミング、ネットワークに関する書籍をいくつか調べましたが、たとえば、
SO_BINDTODEVICE
インターネットでしか見つけられなかったオプションです。
私の長い (汚れた) テスト プログラムが問題を示しています。SO_RCVTIMEO
およびSO_BROADCAST
オプションの設定と取得は、期待どおりに機能します。
ユーザーが終了するときにコードを実行すると、次のようになります。
sudo で実行すると、次のようになります。
それで、オプションの設定は機能しているように見えますが、それを読み戻すことはできませんか?
.net - 任意のポートでブロードキャストパケットをリッスンする方法は?
.NETを使用して、特定のポートにバインドすることなく、任意のポートで.255に送信されたudpブロードキャストパケットをリッスンするにはどうすればよいですか?
flash - リアルタイムビデオをブロードキャストするサーバーを構築するにはどうすればよいですか?
Youtubeのように動画を放送するシステムを構築する必要があります。ただし、ビデオはリアルタイムビデオです。つまり、ビデオはすぐにキャプチャ、変換、およびブロードキャストされます。これを実行できるオープンソースソフトウェアはありますか?
要件(ハードウェアとソフトウェア)を含むいくつかの実用的なガイドが本当に必要です。
よろしくお願いします〜
c# - 送信者が UDP ブロードキャストを受信していない
プラットフォーム: Windows 2003 R2、C#
同じコンピューターと他のコンピューターで実行されている、それ自体の他のインスタンスに UDP メッセージを送信するアプリケーションがあります。これはうまくいっています。ただし、一部のコンピューターでは、リスナーは、同じコンピューター上の他のスレッド/プロセスが送信したメッセージを聞くことができません。メッセージは正常にブロードキャストされ、ネットワーク上の他のマシンはメッセージを聞きますが、同じマシンのリスナーはメッセージを聞くことができません。
奇妙な部分は、これが私のテスト環境の一部のマシンで発生することですが、すべてではありません。
編集: 失敗したすべてのマシンには、Check Point VPN-1 Securemote クライアント ソフトウェアがインストールされています。動作していたマシンに VPN クライアントをインストールしましたが、動作しなくなりました。VPN ホストには接続していないことに注意してください。クライアントをインストールしただけです。
すべてのマシンには、1 つのネットワーク アダプター、255.255.255.0 のサブネット マスク、および 10.3.10.xxx の IP アドレスがあります。
問題を示すテスト クラスを次に示します。ユーザーがテキストを入力すると、それが 10.3.10.255 に送信されます。ReceiveFrom が返されるマシンもあれば、返されないマシンもあります。Controller("10.3.10.255",33333) を呼び出しています
android - Android-ブロードキャストインテントを受信する方法ACTION_SCREEN_ON/OFF?
MyBroadcastReceiver
fooをログに吐き出すためだけに設定されています。何もしません。何か提案はありますか?インテントをキャッチするためにアクセス許可を割り当てる必要がありますか?
c++ - c++は複数のUDPソケットにデータを送信します
すべてのクライアントがstd::map構造に格納されたc++ノンブロッキングサーバーソケットを取得しました。
各clientObjectに対してsend()メソッドを呼び出して、接続されているクライアントに何かを送信できます。これはすでにかなりうまく機能しています。
しかし、すべての人にメッセージを送信するために(ブロードキャスト?)知りたいのですが、すべてのクライアントでfor / loopを実行し、反復ごとにClientObject-> send( "foo")を呼び出すよりも良い方法がありますか?
または、マルチキャストソケットを覗いてみるべきですか?
前もって感謝します。ラグ。
c# - ソケットを使用してブロードキャストに返信を送信する
ブロードキャストを送信してから、サーバーに返信させようとしています。
放送はうまく到着しますが、返事は届きません。例外はスローされません。誰か助けてもらえますか?返信などのために新しい接続を開く必要がありますか?
編集:私のコードを少し変更しました、そして今それは動作します!お返事をありがとうございます!
udp - UDP ブロードキャストの専門家向け: WiFi (802.11N および 802.11G) で高帯域幅のオーディオ UDP ブロードキャストを実現する際の問題
プライベート ネットワークで UDP ブロードキャストを使用して、1 つのサーバーから複数のクライアント コンピューターに WiFi 経由でマルチチャンネル オーディオを送信しようとしています。
netsend~ と netreceive~ という UDP ブロードキャスト ツールを使用して、Pure Data というソフトウェアを使用しています。コードはこちら: http://www.remu.fr/sound-delta/netsend~/
簡単に言うと、ポイントツーポイント ネットワークで 1 台のクライアント コンピューターに 9 チャネルを送信することはできますが、2 台のクライアントにブロードキャストしようとすると (まだ試していません)、無音。オーディオを圧縮し、圧縮された 4 チャネル (非圧縮の約 10% のサイズ) を UDP ブロードキャストで 2 つのクライアントに正常に送信できます。または、UDP ブロードキャストを介して 1 つのチャネルを 2 つのクライアントに送信できますが、いくつかの問題があります。
WiFi ルーターは Linksys WRT300N です。すべてのコンピュータで Windows XP が実行されています。IP アドレスは 192.168.1.x、サブネット マスクは 255.255.255.0、サブネット ブロードキャスト アドレスは 192.168.1.255 です。
興味があります - ルーター内の UDP ブロードキャスト パケットはどうなりますか? サブネット マスクが 255.255.255.0 の場合、ルーターはブロードキャスト アドレスで送信されるすべてのパケットに対して 254 パケットを作成しますか?
私の WiFi 帯域幅は少なくとも 100Mbps ですが、UDP ブロードキャストで約 10Mbps 以上のオーディオを複数のクライアントに送信できないようです。
WiFi の帯域幅制限まで音声を送信できない原因は何ですか?
ソケット コードの変更、ネットワークのセットアップ、ルーターのセットアップ、サブネットの変更などの提案はすべて大歓迎です。
ありがとうニック
c - 独自のブロードキャストudpパケットを無視する方法
以下では、1枚のネットワークカードを想定しています。
サブネット内の他のユーザーにその存在を知らせるように設計されたプログラムのコンポーネントがあります。このために、プログラムが起動するたびに(そしてその後定期的に)ブロードキャストを送信するソリューションを実装しましINADDR_BROADCAST
た。必要なポートでリッスンする人は誰でも、後で使用するためにどこから来たかを覚えています。
これの問題は、私が自分の放送を覚えたくないということです。理論的には、これは簡単に実行できると思いました。ローカルIPを見つけて、取得したものと比較するだけですrecvfrom
。
ただし、ローカルIPを取得するのは難しいことがわかりました。NULLの場合はをgetaddrinfo
返し127.0.0.1
、getaddrinfo
ホスト名の場合はパブリックIPを返します。誰かが実際のサブネットIPを見つける方向に私を向けることができますか?私はここで非常に明白な何かを見逃しているに違いないと思いますが、まあ...私はまだそれを見逃しています:)
注:ブロードキャストに関する他のSOの質問、特にこれを読んだことがあります:すべてのインターフェイスでのUDP-ブロードキャストですが、マルチインターフェイスの問題についてはまだ理解していません。
c# - 社内の.netアプリケーションがその場所とバージョンをアナウンスするための優れたブロードキャストメカニズム?
多数の社内.netアプリケーションに、それらが使用されていることを通知するための軽量な方法を提供したいと思います。私の目標は、サポートチェックインやアップグレードのリマインダーの恩恵を受ける可能性のあるユーザーを追跡することです。
これは社内ネットワーク上にあります。すべてのマシン、そしておそらくUDPの間には間違いなくIP接続があります。(ただし、おそらくマルチキャストではありません。)
既知の社内共有への書き込みや既知のURLのロードは可能ですが、信頼性を犠牲にしても、アプリケーション自体への影響を可能な限り完全に最小限に抑えたいと思います。したがって、タイムアウトのリスクを冒したくはありません(たとえば、集中化されたリソースにアクセスしていて、リソースがなくなった場合)。理想的には、ワーカースレッドも起動しません。
また、複数のリスナーを許可することもできます。これは、サービスを呼び出すのではなく、ブロードキャストを検討しているもう1つの理由です。
このために安全かつ効果的に使用できる、ある種のファイアアンドフォーゲットブロードキャストメカニズムはありますか?