問題タブ [datagram]
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 - Java ソケットに問題があり、複数のデータグラム パッケージをリッスンしません
私が持っている別のサーバー(現在はServer2と呼ばれています)と通信しているサーバー(現在はServer1と呼ばれています)を作成しています。
- Server1 は、データグラム パッケージを Server2 に送信します。
- Server2 は 2 つのデータグラム パッケージを送り返すはずですが、1 つしか返ってきません。
- Server2 は問題ではなく、2 つのパッケージを送信します。
Wireshark を使用して、Server1 を出入りするパッケージを盗聴します。
パッケージ 1 (wireshark から): 「5955 11994.023974 192.168.1.3 192.168.1.2 UDP 送信元ポート: 50000 宛先ポート: 50004」
パッケージ 2 (wireshark から): 5958 11994.045830 192.168.1.3 192.168.1.2 ICMP 宛先に到達できません (ポートに到達できません)
Server1 は、データグラム パッケージをリッスンするスレッドを実行します。
コード サーバー 1:
受信機能:
誰も手がかりを持っていますか?ところで...私も使用します:
複数のデータグラム パッケージをリッスンするには、サーバー ソケットを使用する必要がありますか?
概要: - ポートに到達できません - パッケージ番号 2 を受信できません
誰かが私を助けてくれることを願っています。前もって感謝します
java - NNTP サーバーに接続するための Java Socket または DatagramSocket
Hay Guys、サーバーに接続し、AUTHINFO の詳細を送信し、GROUP と BODY を使用してグループに参加し、投稿を取得できる単純な NNTP クライアントを作成したいと考えています。
ここで何人かの人たちと話し合ったところ、彼らは dataGramSockets と datGramPackets の使用を提案しました。
各コマンドがどのように機能するか、および従来のソケットで DataGram Sockets を使用する理由を説明する、これらを実行するための簡単なスクリプトを誰か提供できますか? Socket を使用してサーバーに接続できましたが、getInputStream() および getOutputStream() を使用してサーバーにデータを送受信する方法がわかりませんでした。
どんな助けでも素晴らしいでしょう。
java - Java のデータグラム
ネイティブ関数を使用せずにJavaでデータグラムを送信する可能性はありますか?
c - 受信 UDP パケット長
受信したUDPパケットの長さを取得するには? Wireshark を使用すると、データグラムの正しい長さを確認できました。単純な udp サーバー プログラムでこの値を出力するにはどうすればよいですか? バイナリ データ (データとして印刷できない ASCII 文字) を受信しているため、間違った長さをスローする strlen(buf) を使用できません。
上記のコードから、udp パケットの長さは常に「0」です。コメントはありますか?
私も以下のように試しました
上記のコードは常に IP ヘッダーから間違った値を返しますか? コメントはありますか?
元の C ファイルはここに含まれています。
そして、私が受け取っている出力は次のとおりです。
上記の復号化されたデータは、送信したデータと一致しました。
udp - クライアントが UDP ポートをリッスンしない場合、データグラムはどこにありますか?
クライアントがアプリケーションを介して多数のデータグラムをサーバーに送信するとします。サーバー側のアプリケーションが動作を停止し、データグラムを受信できない場合、クライアントは引き続き UDP プロトコルを介してサーバーにデータグラムを送信し続けます。これらのデータグラムはどこに行くのでしょうか? それらはサーバーのOSデータバッファに残りますか(または何か?)
クライアントが 1000 個のデータグラム (それぞれ 1K) をインターネット経由で PC に送信した場合、それらの 1000 個のデータグラムは、誰もそれらのデータを聞いていなくてもインターネットを通過する (帯域幅を消費する) ことを知りたいので、この質問をしますか?
答えが「はい」の場合、これを止めるにはどうすればよいですか? サーバーが機能しなくなった場合、UDP を使用してその事実を知り、それ以上の送信を停止するにはどうすればよいでしょうか?
ありがとう
java - UDP チャットの問題
こんにちは、クライアントが LAN 経由で通信できる UDP チャット プログラムを作成しました。
一般化されたプログラムを作成しました。つまり、同じコードを異なるポート番号で実行します。およびLAN上のIPアドレス
私の問題は、以下のこのコードは localhost で正常に動作しますが、2 台のマシンを接続しようとすると、このコードは機能しません。現時点ではエラーは発生していませんが、それでも 2 つのクライアントは通信できません。
ファイアウォールもオフにしましたが、2 台のマシン間で通信できない理由がわかりません。
コードは次のとおりです::
java - Netty UDP サーバーの終了
Netty を使用して非常に単純な UDP サーバーを作成しました。これは非常にうまくバインドされ、メッセージを受け入れますが、バインドを解除する方法がわかりません。
それとも、Netty がサーバーのアンバインドに必要な API を公開していないのでしょうか?
編集
サーバーをバインドするために使用しているコードは次のとおりです。
java - Android 2.0.1 (現在 DROID 上) のマルチキャストは壊れていますか、それとも何か不足していますか?
このコードは、Ubuntu、Windows、および Mac OS X で完全に機能します。また、Android 2.1.1 を実行している Nexus One でも正常に機能します。
マルチキャスト データグラムの送受信を開始すると、すべてのコンピュータと Nexus One がお互いを完全に認識できるようになります。次に、ドロイド(ファームウェア 2.0.1) で同じコードを実行すると、誰もがドロイドから送信されたパケットを取得しますが、ドロイドは自分のパケットのみをリッスンします。
これは、run()
マルチキャスト グループに送信された着信パケットを常にリッスンしているスレッドの方法です。
ルーターでマルチキャスト サポートが有効になっているローカル ネットワークでテストを実行しています。私の目標は、パッケージをマルチキャスト グループにブロードキャストすることによって、デバイスがオンラインになったときにデバイスを相互に接続させることです。
これは、使用可能なすべての有効なネットワーク インターフェイス (ループバック インターフェイスではない) からマルチキャスト データグラムを送信するコードです。
更新 (2010 年 4 月 2 日) Droid のネットワーク インターフェイスがマルチキャストを使用して通信する方法を見つけました: WifiManager.MulticastLock。
じゃあ終わったら…
これを行った後、Droid はマルチキャスト グループで UDP データグラムの送受信を開始しました。
2010 年 7 月 6 日更新
リクエストごとに、これが私の現在のコードです。次のメソッドは、ブロードキャストとマルチキャストの両方のレシーバーに使用できる抽象クラスに存在します。
拡張クラスは実装onInit()
し、onDatagramReceived()
マルチキャストレシーバの場合、次onInit()
のようになります。
java - Java が UDP パケットの半分をドロップする
シンプルなクライアント/サーバーのセットアップがあります。サーバーは C 言語であり、サーバーにクエリを実行するクライアントは Java です。
私の問題は、接続を介して帯域幅を集中的に使用するデータ (ビデオ フレームなど) を送信すると、最大で半分のパケットがドロップされることです。サーバー側で udp パケットを適切にフラグメント化するようにします (udp の最大ペイロード長は 2^16 です)。サーバーがパケットを送信していることを確認しました (sendto() の結果を printf します)。しかし、Java は半分のデータを取得していないようです。
さらに、TCP に切り替えると、すべてのビデオ フレームが通過しますが、レイテンシーが増加し始め、数秒の実行時間の後に数秒の遅延が追加されます。
私が行方不明であることは明らかですか?私はこれを理解できないようです。