問題タブ [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.

0 投票する
1 に答える
2752 参照

android - 特定の時間に活動を開始する

私は Android 開発に慣れていないので、明らかな何かが欠けている可能性があります。Activityユーザーの電話の時計が指定された時間に達したときに (アラームのように)を起動したいと考えています。ただし、クロックの絶え間ないポーリングは非効率的でリソースの無駄に思えるため、これをどのように行うかはわかりません。クロックからブロードキャスト イベントをキャプチャする必要がありますPendingIntentsか? 私が読むべきいくつかのSDKメソッド/サービスを誰かが指摘できれば、それは大歓迎です. ありがとう。

0 投票する
1 に答える
2497 参照

linux - 8.04 ではなく Ubuntu 9.04 での UDP ブロードキャスト受信の問題

アップデート

  • 01-27ter: rp_filter情報追加
  • 01-27bis: 9.04 ボックスは別のインターフェイスで動作することに注意してください。
  • 01-27: インターフェイス構成情報とパケットの解析を追加。

元の投稿

私は 2 つの非常によく似たハードウェア構成 (デュアル Xeon CPU と 2 つのイーサネット ポートを搭載した SuperMicro 1U システム) を持っています。 17 サーバー)。これらは両方とも、さまざまな他のサーバーがブロードキャストUDPパケットをさまざまなポートに送信している同じネットワークに接続されたeth1を持っています。両方のホストで、eth1 で tcpdump を使用すると、これらのブロードキャスト UDP パケットが到着することがわかります。

ただし、8.04 のボックスでは、簡単なプログラムで問題なくリッスンできますが、9.04 のボックスでは、同じプログラムがそれらを受信することはありません。高レベルの概要として、一方では動作するが他方では動作しないサンプルHaskellプログラムを次に示します(両方で同じバージョンのGHCを使用):

問題がGHCで非常に奇妙なものであった場合(両方で同じビルドですが)、同じことを行うCプログラムを書きました:

この場合の楽しみのために、ソケットの SO_BROADCAST フラグもオンにして、それがオンになることを確認していますが、プログラムの動作には違いはなく、同じです。 . 8.04 でビルドされたバイナリを 9.04 ボックスにコピーした場合、またはその逆の場合でも、8.04 ボックスで実行されているプログラムは UDP ブロードキャスト パケットを認識し、9.04 ボックスは認識しません。

私は何を間違っていますか?

アップデート 01-27:

動作中の (8.04) ホストの ip link および ip ether の出力は次のとおりです。

稼働していない (9.04) サーバーの場合:

どちらの場合も、eth1 はブロードキャストが到着するポートであることに注意してください。

プログラムが受信していないサンプル ブロードキャスト パケットの完全なデコード (動作していない 9.04 サーバー上の tshark から) を次に示します。

動作中の 8.04 サーバーで取得したダンプからの同じパケットに対してこれを比較しましたが、パケット自体は同一です。唯一の違いは、フレーム番号 (pcap ファイル内) と、パケットが受信された時間 (1.224 ミリ秒の差です。2 つのホストが同じ NTP サーバーを使用していることを考えると、この差は大きいように見えますが、まったく不合理ではありません)。

更新 01-27bis

さらに実験して、8.04 ホストで独自のブロードキャスト パケットを生成し、9.04 ホストに送信しました。9.04 ホストは、8.04 ホストがパケットを送信して eth0 または eth1 に到着すると、パケットを問題なく受信します。

更新 01-27ter

sp 3; sysctl -a 2>/dev/null | grep '\.rp_filter' | sort8.04 ホストでの出力は次のとおりです。

9.04 ホストでは次のようになります。

0 投票する
1 に答える
6413 参照

delphi - SO_REUSEADDRを使用する場合、127.0.0.1に送信されるUDPパケットを受信する

UDPとブロードキャストメッセージを使用して、一連のアプリケーションがお互いを検出できるようにしようとしています。アプリケーションは定期的にUDPパケットを送信し、自分が誰で何ができるかを示します。最初は、INADDR_BROADCASTへのブロードキャストにのみ使用します。

すべてのアプリケーションは、リッスンする同じポートを共有します(したがって、SO_REUSEADDR)。イベントカーネルオブジェクトがソケットにアタッチされているため、新しいパケットをフェッチしてそれをWaitForループで使用できるようになると通知が届きます。ソケットは非同期で使用されます。

ソケットを開く:

指定されたアドレスのリストにデータを送信します。

パケットの受信:

INADDR_BROADCASTを使用してブロードキャストデータを送信する場合、ローカルブロードキャストアドレス(192.168.1.255)またはローカルIPアドレスはすべて正常に機能します。127.0.0.1を使用して「ブロードキャスト」する瞬間、受信は散発的ですが、通常は機能しません。

誰かがこれを解決する方法の手がかりを持っていますか(アドレスリストは変更可能です)?他のすべてが失敗した場合は、すべてのローカルIPアドレスを検索し、127.0.0.1をそれに置き換えますが、IPアドレスが変更されると問題が残ります。

更新:App1を最初に起動すると、App1はパケットを受信します。次に、App2を起動します。これで、App1は引き続きパケットを受信しますが、App2は受信しません。App1を停止すると、App2はパケットの受信を開始します。App3を起動すると、App2はパケットを受信しますが、App3は受信しません。

したがって、127.0.0.1が使用されている場合、1つのアプリケーションのみがパケットを受信します。

また、IPPROTO_IP、IP_MULTICAST_LOOPをsetsocketoptを使用して1に設定しても、何も変更されません。

0 投票する
1 に答える
412 参照

flash - ビデオ放送

楽しみのために、 http://chatroulette.com/を再作成したいと思います。基本的に、フラッシュを使用して、あるコンピューターから別のコンピューターにウェブカメラのビデオをストリーミングできる必要があります。

私はフラッシュが初めてです。このためのライブラリはありますか?

0 投票する
1 に答える
165 参照

c++ - クライアントからインターネット経由で送信されたデータグラムの受信

ブロードキャスト リスナーと UDP ライター (練習用) の 2 つのコンソール アプリを作成しました。それぞれがインターネット経由で異なるマシンで実行されます。

放送リスナー:

Udp ライター:

場合:

  1. ライターは、いくつかのデータグラムをリスナー サーバー (ip: 113.169.123.138) に送信します。リスナーはそれらのデータグラムを受信できます。

  2. ライターは 255.255.255.255 にブロードキャストします。リスナーは何も受け取ることができません。

質問:

  • ケース2を機能させるために何をする必要がありますか?
0 投票する
1 に答える
233 参照

android - Android - どういうわけかインテントが増加していますか?

アプリケーションでカスタム インテントの使用を開始しましたが、少し問題が発生しました。

カスタム インテントを送信するときにブロードキャスト レシーバーを登録すると、問題なくインテントをキャッチできます。

ただし、インテントを再度送信すると問題が発生するようです。Broadcast Reciever はインテントの 2 つのイベントを登録するようです。そのため、インテントが 3 回目に送信されると、3 回受信します。

これは私のアプリケーションに重大な問題を引き起こしています。これは正常なのか疑問に思っていましたが、対処する方法はありますか?

これが私のコードです:


インテントを送信するには:


インテントを受け取るには:

インテントが一度だけ起動されるようにする方法はありますか??

0 投票する
4 に答える
3025 参照

c++ - UDP 経由のブロードキャスト要求に応答して、N 個のクライアントから応答を受信する

特定のタイプのネットワーク マルチメディア デバイス用に一種の IP ファインダーを実装しています。LAN 内のそのタイプのすべての動作中のデバイスを、その IP アドレスやその他の詳細とともに見つけたいと考えています。

デバイスには、デバイス検出の独自の方法があります。

次のように動作します。クライアントは、UDP 経由で LAN 経由でブロードキャスト要求を送信します。
宛先ポート番号は固定です。
応答として、この要求の形式を理解する LAN 内のすべてのサーバーが、この要求に応答して、自身に関する情報を提供します。

sendto() を使用して UDP 要求メッセージをブロードキャストしています。

ここでの問題は、要求に応答するデバイス (すなわちサーバー) の数がわからないことです。

recvfrom() を何回呼び出す必要がありますか?
すべてのデバイスからの応答を処理したことはいつわかりますか?
または、一般的に、recvfrom() は複数のサーバーから応答を受信するための正しい選択ですか?
同じことを達成するためのより良い(またはここで間違っている場合は正しい)方法はありますか?

私は C/C++ でプログラミングしており、Windows と Linux の両方でコーディングする予定です。
よろしくお願いします。

編集:ここにいるすべてのネットワークプログラミングウィザードの助けを借りて、私は私の問題の解決策を見つけました:)
select()は私にとってまさにものです...
時間を割いて助けてくれた皆さんに感謝します自分

0 投票する
2 に答える
3838 参照

c# - ピア ツー ピア ネットワーク用のアプリケーションのネットワーク検出

サーバー クラスとクライアント クラスの 2 つのクラスが必要です。サーバー クラスは、新しい各クライアントの IP アドレスとポート番号を受け取り、それらをリストに格納する必要があります。各クライアントに、接続されたクライアントとその IP アドレスのリストを提供する必要があります。その後、クライアントは TCP 接続を使用して相互に通信できます。

問題は、クライアントがサーバーの IP アドレスがわからないことです。ただし、プログラム全体はローカル エリア ネットワーク上で実行されます。私の推測では、ある種の UDP ブロードキャストが必要ですが、プログラムの 2 つのインスタンスが同じコンピューターで実行されていない限り、これを実装しようとするたびに機能しません。

アプリケーションは、コンピューティングの知識が限られているクライアントによってインストールされるため、すべてのコンピューターにプログラムをインストールし、ネットワークに接続するだけのケースである必要があります。

誰かが C#.net 3.5 以前を使用してこれを信頼できる明確な実装をしている場合、それは大歓迎です。

0 投票する
1 に答える
395 参照

ruby - Icecast サーバーの状態

Icecast2サーバーでブロードキャストがオンラインかオフラインかを確認する方法を知っている人はいますか? ルビー優先。

0 投票する
2 に答える
591 参照

java - JavaでUDPを介してデータベースサーバーのIPを決定する方法

データベースサーバーにデータを保存するクライアントをJavaで作成しています。これまでのところ、サーバーの IP とポートは、クライアントの設定で手動で指定する必要があります。ブロードキャスト/マルチキャスト/UDPを介してデータベースサーバーのIPを自動的に決定できると聞きました(これらの概念に精通していません)。質問: ローカル ネットワークで利用可能なすべてのデータベース サーバーの IP アドレスを取得する方法はありますか? これまでのところ、h2 データベース システムを使用しています。

さようなら、ヴォルフガング