問題タブ [multicastsocket]
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.
java - パケットを送信しても MulticastSocket.receive が返らない
10 秒ごとにマルチキャスト グループにメッセージを送信するサービスをコーディングしようとしています。差出人は次のとおりです。
受信者はパケットを読み取って応答する必要があります。
送信者の出力は次のとおりです。
send Pkt
[10 秒スリープ]
send Pkt
(何度も...)
受信機の場合:
WAIT キープアライブ パケット
両方の機能は、2 つの異なるプロセスを使用して、同じマシン上で実行されています。MULTICAST_IP は同じです (検証済み)。receive()
返さない理由がわかりません。
MULTICAST_PORT の値は、実行される関数の参照で異なりますが、これは問題ではありません。例外はスローされません。
java - MulticastSocket が送信されたパケットを受信しない
2 つのプロセス間で MulticastSocket を使用しようとしています。サーバーはパケットを送信し、クライアントはそれを読み取る必要があります。サーバーコードは次のとおりです。
クライアントコードは次のとおりです。
問題は、サーバーがパケットを送信する (send(pkt) が返される) 代わりに、クライアントがパケットを受信しない (receive(pkt) が返されない) ことです。問題はどこだ?
ps: サーバーとクライアントは同じコンピューター上にあり、MULTICAST_TTL は 1 です。
java - MulticastSocket レシーバーがメッセージを永遠に待ち続ける
何が悪いのかわかりませんが、MulticastSocket を使用していくつかの異なるボードと通信しようとしていますが、受信者はメッセージを待ち続けているようです。
メッセージを分析する 1 つのサーバーのみに、異なるクライアントからネット経由で 3 つの異なるオブジェクトを転送する必要があります。
サーバーコード:
クライアントコード:
サーバーを起動してからクライアントを起動すると、サーバーがブロックされescucha.receive
ます。
c# - ネットワークが失われた後に IpMulticast が動作を停止し、10 ~ 15 分後に再接続する
マルチキャストを使用して継続的にメッセージを送信する ac# ベースのアプリケーションに取り組んでいます。すべてが正常に機能します。受信側のクライアントは、ネットワークが切断されるまで継続的にメッセージを受信します。しかし、ネットワークに再接続すると、受信コードを介して同じマシン上のすべてのメッセージを収集するまで、同じネットワーク上のクライアント マシンはメッセージを受信しません。
送信コード:
コードを受け取る:
システムですべてのメッセージが収集されているようですが、特定のマルチキャスト アドレス、つまり「239.0.0.222」でネットワーク ジャムが発生しています。アドレスを変更しようとしても機能しますが、「239.0.0.222」では機能しません。
これが起こっている正確な理由と、これに対する有効な解決策は誰でも知っています。
java - マルチキャスト ソケットが閉じられない
特定のポートで MulticastSocket を作成し、グループに参加しています。現在、ソケットはブロードキャストされている限り、データパケットを受信し続けます。そのため、常に true である while ループで socket.receive を呼び出します。今はグループを離れることはありません。しかし、プログラムを終了すると、ソケットは自動的に閉じますか? これについて明確にする必要があります。
また、そのグループを離れてソケットを閉じる必要がある場合、どうすればそれを達成できますか? addShutdownHook を使用してみました
しかし、奇妙な理由で機能していません。
c++ - C++ マルチキャスト mpeg ストリームに参加するにはどうすればよいですか?
のアドレスを持つマルチキャスト mpeg ストリーム グループに参加するにはどうすればよいudp://@224.1.50.15:1234
ですか? 私が管理したいのは、ストリームサーバーと接続して、このマルチキャストグループに興味があることをサーバーに認識させ、サーバーが一定期間ストリームパケットを送信するようにすることです。
例: VLC Player でグループへの接続を確立するまで、このマルチキャスト グループからパケットを受信していません。VLC プレーヤーを閉じた後でも、グループからパケットを短時間受信し続けます。私がやろうとしているのは、VLC Player または他のサードパーティ アプリケーションの助けを借りずにパケットを受信することです。
上記の目的でこのグループと接続するにはどうすればよいですか。それさえ可能なら?
PS: 4 つのネットワーク インターフェイスがインストールされています。
ありがとうございました!
このページの彼の回答におけるZaboj Campulaの推奨として; 以下のようにコードを変更しました。エラー10093が表示されます。
java - MulticastSocket に参加しているクライアントをカウントするにはどうすればよいですか?
を使用してチャットをプログラミングしていMulticastSocket
ます。これに参加したクライアントの数を数えます。
MulticastSocket
この目的のための機能はありますか?
java - Java MulticastSocket.receive を取得して ClosedByInterruptException をスローする
ユーザー定義の終了時刻までマルチキャスト ソケットからデータを読み取るコードがあります。また、スレッドがへの呼び出しThread.interrupt
によって (または他のユーザーが開始したアクションによって) 中断された場合は、データの読み取りを停止したいと思います。スレッドが中断されたときに通知を受け取る方法がわかりません。既存のコードは次のとおりです。
DatagramSocket.getChannel
を返すメソッドがあることを確認したDatagramChannel
ので、当然のことながら、基になるソケットの読み取り/書き込みには型が使用されていると想定しました。その仮定は間違っていました。つまり、MulticastSocket
は実装されていませんInterruptibleChannel
。このため、 をMulticastSocket.receive
スローすることはありませんClosedByInterruptException
。
DatagramChannel
オンラインで例を検索しましたが、上記のコードを変更して a の代わりに aを使用する方法がわかりませんMulticastSocket
。助けが必要な問題は次のとおりです。
- DatagramChannel で SO_TIMEOUT パラメータを設定するにはどうすればよいですか?
InetAddress
をNetworkInterface
オブジェクトに変換するにはどうすればよいですか?
以下は、要件を満たすために実装を からMulticastSocket
に変換する方法に関する私の最良の推測です。DatagramChannel
このアプローチは機能しますか? スローできる例外の1つとしてDatagramChannel.receive
リストされていません。これが機能する場合SocketTimeoutException
は、2 番目の実装を最初の実装と同等にする方法を変更する必要があることを教えてください。そうでない場合、ユーザーの操作を介して実行を停止する方法を提供しながら、事前に定義された時間にデータグラムの受信を停止するという要件を満たす方法について、他のアイデアはありますか?ClosedByInterruptException
Thread.interrupt