問題タブ [multicast]
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++ - IPv6 リンク ローカル マルチキャスト
IPV6 を使用して IPV4 ブロードキャストに相当する方法を見つけようとしています。
ノンブロッキング IPV6 UDP ソケットを作成しています。
ブロードキャスト側から、私は文字通り、ポート 12346 で "FF02::1" に sendto を実行しています。
リッスン側では、グループに参加する必要があることを発見したので、次のことを行いました。
ただし、setsockopt は常に「WSAENOPROTOOPT」を返します。なんで?誰でもこれで私を助けることができますか?私は完全に途方に暮れています。
編集: レベルを「IPPROTO_IPV6」に変更しましたが、「WSAEINVAL」が表示されます。
c# - インターネット上のUDPマルチキャスト?
問題にどのように取り組むのが最善かわかりません。UDPパケットを受信して処理するリモートマシンで実行されるサービスがあります。サービスがこれらのパケットを必要な人に再送信できるようにしたい(誰もいない可能性があり、通常は1台のマシンになりますが、それ以上になる場合もあります)
UDPマルチキャストが理想的だと思いました。サービスはマルチキャストグループに送信でき、受信者がいくつ登録されていても、受信者が登録されていなくてもかまいません。
しかし、私はインターネットを介してこれにアクセスできるようにしたいので、私が収集したものから、これはUDPマルチキャストではほぼ不可能です。これを達成するために使用できる別の方法はありますか?
必要に応じて、クライアントとサービスの両方がC#で記述されています。
c# - 複数の NIC を搭載したコンピューターで UDPClient マルチキャスト受信が失敗する
複数の NIC を搭載したコンピュータを使用していますが、UDPClient の send メソッドが頻繁に失敗します。コードは次のとおりです。
PORT = 5000 および IP = 224.5.6.7 なので、問題ありません。主な問題は、recvSock.Receive() 行を通過できないことです。パケットがwireshark経由で入ってくるのが見えますが、コードはそれらを処理しません...
考え?前もって感謝します!
ダン
編集: 複数の NIC が問題を引き起こしていることを確認できます --- コードは単一の NIC で正常に動作します。SetSocketOption 行のコメントを外すと、複数の NIC で動作するようになりますが、それでも失敗します....
python - PythonでIPv6リンクローカルマルチキャストUDPデータグラムを送受信しますか?
以下は、単純な IPv4 UDP ブロードキャストであり、その後にすべてのインターフェイスでリッスンします。
これを調整して、IPv4 と IPv6 の両方を送受信できるようにしたいと考えています。
私はできるだけ多くのことを調べて読みましたが、大まかに以下が私がたどる必要があるルートであると信じています:
- IPv6 ソケットを作成します。
- ソケットをリンクまたはサイト ローカル マルチキャスト グループに追加します。
- 使用中のグループのマルチキャスト アドレスに UDP パケットを送信します。
私が持っている詳細な情報は、いくつかのインターフェースにバインドする必要があるかもしれないということです。そして、setsockopt()
マルチキャストパケットも受信する必要があることを使用してソケットに伝えます。最後にgetaddrinfo()
、IPv6 が利用できない場所で IPv4 に優雅に「ドロップバック」するために全面的に使用できます。
私はこれの多くを実装しましたが、主にマルチキャストの部分でつまずきました。Python での完全なコード例、または必要な定数とアドレスの明確な説明が望ましいです。
c - Error "No such device" in call setsockopt when joining multicast group
I have a code in which send multicast datagrams. A critical piece of code:
#xA;Sometimes program executes successfully (at this moment I have IP - 192.168.80.122
). I can capture my multicast datagram by wireshark. That's all OK.
But if I change my IP to 192.168.1.2
, I get error when is called
And I can't even capture my multicast packet. Nothing is sent. Where's bug?
c# - マルチキャストのC#トピック名
C#で、マルチキャストを介してTOPIC名を使用してクライアントとサーバー間の通信を作成できるかどうかを知っていますか?
それを行うことができるクラスまたは無料のメッセージングシステムはありますか?基本的に、サーバーは通信を開き、トピック名で表されるチャネルにデータを送信します。つまり、「MAIN_DATA」などの文字列と、そのトピックをサブスクライブしたすべてのクライアント(マルチキャストであるため複数)は、トピックからデータを取得できます。
よろしく
.net - .NETを使用してマルチキャストpingを送信するにはどうすればよいですか?
.NETでマルチキャストpingを送信するにはどうすればよいですか?ネットワーク上のすべてのコンピューターが応答するように?
c++ - sendto() を使用して構造体を送信する方法
私は構造を作成しました:
sendto メソッドを使用してこの構造体を送信するには、構造体を型キャストして、以下のように送り返します。
しかし、構造体をキャストしているときにchar*
、実際のデータの値が失われ、デバッグ中に sendbuf に他の値が含まれていることがわかります。
sendtoを使用して上記の構造を送信する方法を教えてください。
sockets - Windows-Linux-Mac での UDP ソケット ネットワーク切断動作
UDPマルチキャストを使ったboost.Asioでアプリを作ってみました。質問は実際にはboost.Asioに固有のものではないと思いますが、boost.Asioのネットワーク機能はほとんどがソケット関数のラッパーであるため、ソケットプログラミング全般に当てはまります。
マルチキャストの例 ( http://www.boost.org/doc/libs/1_44_0/doc/html/boost_asio/example/multicast/receiver.cpp および ~/sender.cpp) に基づいてアプリケーションを構築し、 デプロイしましたWindows、Linux、および OSX Leopard を搭載した Mac で実行されているいくつかのマシンで。例から派生したコードを使用して、すべてのプラットフォームでマルチキャストがすぐに機能することを非常に嬉しく思います。
問題が発生するのは、ネットワーク ケーブルを外したときです。もちろん、ケーブルを外すと常に問題が発生します ;) しかし、私を夢中にさせる微妙な違いがあります。
私のテスト セットアップは常に次のとおりです。送信側と受信側を実行する 1 台のマシンで、同じマシンが独自のマルチキャストを受信するかどうかを確認し、別のマシンは受信側のみを実行します。送信機と受信機を実行しているマシンのネットワーク コードを引っ張ります。
観察された動作:
-明らかに、受信機が実行されているマシンは、それ以上メッセージを受信しません。それは予想されていたことです;)
- ネットワーク ケーブルが抜かれているマシンが Windows を実行している場合、送信側は送信を続け、同じマシンの受信側は受信を続けます。エラーは検出されませんでした。Windowsにはループバックへの本質的なフォールバックがあるようです?
-ネットワーク ケーブルが抜かれたマシンが Mac OSX を実行している場合、送信者はエラー メッセージを表示せずに送信を続けますが、同じマシンの受信者はそれ以上受信しません。あなたが尋ねる前に、ループバックを無効にするオプションを設定しないようにチェックしました。
- ネットワーク ケーブルが抜かれているマシンが Linux を実行している場合、送信側は boost::error "Network is unreachable" で失敗します。明らかに、送信者はデータを送信できないため、受信者は何も受信しません。
Linux の場合、「到達不能」エラー (または間違ったバイト数の書き込み) をキャッチし、コードにフラグを設定して、すべてのデータをマルチキャスト アドレスではなく 127.0.0.1 に送信することで、Windows の動作を偽装できます。マルチキャスト エンドポイントの send_to がまだエラーを生成しているかどうかを定期的にチェックして、ネットワークの再接続を検出し、マルチキャストに戻ります。レシーバーは inaddr_any への bind() であり、したがって 127.0.0.1 もリッスンするため、これは魅力のように機能します。
Mac OSX の場合、ローカル マシン上のレシーバーのサービスを維持するためにネットワークに到達できなくなったときに、それを通知する手段がありません。
Mac OSX では、ネットワーク ケーブルが再接続され、DHCP がまだ新しい IP アドレスを取得していないときに、「ネットワークに到達できません」というエラーが一時的に発生することがわかりました。
基本的に:MacOSXでローカルクライアントがローカル送信者から受信できるようにするにはどうすればよいですか? Linux で行っているようにネットワークの損失を検出するか、それをだまして Windows のように振る舞わせます。
私よりもネットワーク プログラミングに詳しい方からのアドバイスをお待ちしております。
android - Android 2.2 でのマルチキャスト
Android 2.2、特に Bonjour サービス検出用の JmDNS でマルチキャストが動作するようになった人はいますか? Android 1.5->2.0 のタイムフレームには、さまざまなレベルの成功を示す stackOverflow を含む多くの質問と回答があり、2.2 で修正されてクローズされたことを示すバグ トラッカーのバグ ( http://code .google.com/p/android/issues/detail?id=2323 ) . 「TuneControl」のソース コードを試してみましたが、これは ~1.5 で動作し、更新されておらず、2.2 でも動作しません。
では、質問は... 1) 2.2、特に JmDNS、特に Bonjour サービス検出でマルチキャストが動作するのを見た人はいますか?
2) これを機能させるには、コードに何が必要ですか?
私は適切な権限を使用しています:
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
マルチキャスト ロックを取得します。
次に、jmDNS を起動してサーバーを探します。
リスナーはサービスを認識しません。Wireshark を使用して、要求パケットが送信され、サーバーが応答することを確認しましたが、jmDNS ライブラリのソケット リスナー コードでは応答パケットが表示されません。
それで...何か足りないのですか?これはまだバグですか?誰かがこのようなリモートでさえ何かを得たことがありますか???