問題タブ [udp]
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# - 非同期 UDP ソケットの問題
私はソケットプログラミングに少し苦労しています(私はまったく慣れていないものです)。GoogleやMSDNから役立つものは何も見つかりません(ひどい)。これの長さについてお詫び申し上げます。
基本的に、UDP 経由でリクエストを受信して応答する既存のサービスがあります。私はこれをまったく変更することはできません。
また、そのサービスへの応答をディスパッチしてリッスンするクライアントを webapp 内に持っています。私が与えられた既存のクライアントは、ソケットと応答スロットの配列を作成し、「sock.Receive()」呼び出しを行い、受信したデータをスロット配列。これに関するあらゆる種類のことが間違っているように思われ、無限スレッドが単体テストを中断するため、このサービスを代わりに非同期で送受信するサービスに置き換えようとしています。
ポイント1:これは正しいアプローチですか?ノンブロッキングでスケーラブルなスレッドセーフなサービスが必要です。
私の最初の試みは大まかにこのようなもので、うまくいきましたが、返されたデータは常に予想よりも短く (つまり、バッファには要求されたバイト数がありませんでした)、処理時に例外がスローされたようです。
私の 2 回目の試行は、Google のトロールと頻繁に見られるこの再帰パターンに基づいていましたが、このバージョンは常にタイムアウトします。ARecieveには届きません。
ポイント 2: 明らかに、私は何かかなり間違っています。
ポイント 3: これでいいのかどうかわかりません。リモート サービスからのデータは、どのようにして適切なリッスン スレッドに到達するのでしょうか? リクエストごとにソケットを作成する必要がありますか?
ここの私の快適ゾーンの外。助けが必要。
windows - マルチホーム システムでの UDP ブロードキャストの受信
複数のネットワーク アダプタを備えた Windows XP マシンを使用しています。有効な IP アドレスをまだ持っていない別のマシンから UDP ブロードキャスト パッケージを受信した場合、このパッケージを受信したネットワーク アダプタを特定するにはどうすればよいですか?
カスタム DHCP サーバーに種類を実装する必要があります...
java - udp を使用してリアルタイムの音声を送信する
こんにちは皆さん、助けてください。udp socket を使用して、クライアントとサーバーの間で文字列 msg を送信するための Java コードを作成します。でも、リアルタイムで音声を送りたいので、注意点を教えてください。
c++ - UDP データグラムのシーケンスを送信する「正しい」方法は?
UDP の不安定性は物理層の特性であるという印象を受けましたが、そうではないようです。
一連のパケットに分割された UDP 経由でメッセージを送信しようとしています。メッセージの識別と並べ替えは暗黙的に行われます。
同じコンピューターで実行される 2 つのアプリでこの方法をテストし、スムーズに実行されることを期待しました。ただし、データ転送は完全に同じマシン上の 2 つのプログラム間で行われたにもかかわらず、パケットの損失が頻繁に発生していました。損失も非常にランダムなようです。メッセージ全体が通過する場合もあれば、通過しない場合もあります。
さて、同じマシンでも損失が発生するという事実は、私がそれを正しく行っているかどうか疑問に思います。
もともと、メッセージのすべてのピースをシングルショットで非同期に送信し、1 つのピースの完了を待たずに次のピースを送信していました。
次に、前のメッセージの完了ルーチン内から次のメッセージを送信しようとしました。これにより、パケット損失率は改善されましたが、完全に防止されたわけではありません。
ピースの間に一時停止 (Sleep(...)) を追加すると、100% 動作します。
編集: 答えが示唆したように:パケットは単に送信されるのが速すぎて、OS は最小限のバッファリングを行います。それは論理的です。
では、確認応答をシステムに追加して再送信するのを防ぎたい場合 (その場合は TCP を使用するだけで済みます)、どうすればよいでしょうか? データレートをより高いレベルに落とすことなく、パケット損失率を改善する最善の方法は何ですか?
編集2: 問題は、バッファが利用できないというよりも、正確にバッファオーバーフィルではない可能性があることに気づきました。私は非同期WSARecvFromを使用して受信しています。これは、私が理解しているように、デフォルトのOSバッファをオーバーライドするバッファを取ります。データグラムが受信されると、バッファに送られ、バッファがいっぱいかどうかにかかわらず、完了ルーチンが呼び出されます。
その時点で、完了ルーチン内から WSARecvFrom が再度呼び出されるまで、受信データを処理するためのバッファはまったくありません。
問題は、ある種のバッファープールを作成する方法があるかどうかです。そのため、別のバッファーが処理されている間にデータをバッファーに入れることができますか?
udp - UDPロックアップ?
やあみんな私は人々が解決策を推測する必要があります:(。
私はUDPソケットを使用しており、私が行っているのは、約8、4、またはその他のバイトのプレーヤー入力を送信することです。私はrecvfromとsendtoを使用しています。それは数分間動作し、その後ランダムにロックされます。ただし、これは私のアプリロジックが原因である可能性がありますが、誰かがこれを経験していて、UDP/ネットワークの問題であるかどうかを知りたいです。私のコードはここhttp://www.pastie.org/486583にありますが、私は主にあなたの経験に基づいてこの問題を修正するために何を調べることができるか知りたいです。
networking - フラグメント化せずに送信できる最大の UDP パケットを見つける方法は?
別のコンピューターに送信できる UDP パケットの最大サイズを断片化なしで知る必要があります。
このサイズは一般に MTU (Maximum Transmission Unit) として知られています。おそらく、2 台のコンピューターの間には、異なる MTU を持つ可能性のある多くのルーターとモデムがあります。
Windows の TCP 実装では、パス内の最大 MTU が自動的に検出されると読みました。
私も実験していましたが、私のコンピューターからサーバーへの最大 MTU は 57712 バイト + ヘッダーであることがわかりました。それ以上のものは破棄されました。私のコンピュータは LAN 上にありますが、MTU は 1500 バイト程度ではないでしょうか?
iphone - ピア2ピアゲーム用に3Gを介したNATトラバーサル技術を介してiPhoneを接続することは可能ですか?
iPhoneを別のiPhoneまたはそのゲームのプロトコルを話している他のネットワーククライアントに接続することは可能ですか?
XBox 360で使用されているのと同じNATトラバーサル手法を使用して、ファイアウォールを介してユーザーXBoxでゲームをホストできると考えていました。
NATトラバーサルを効果的に機能させるには、クライアントがホストしていることを「ブロードキャスト」して、別のクライアントがNAT接続を開始できるようにする中央サーバーが必要です。提供されたリンクでは、これはリレーと呼ばれます。
NATトラバーサル技術をブロックする米国のAT&T 3Gネットワークに固有の制限はありますか(wifiファイアウォールのNATトラバーサルに制限されますか)?
NATトラバーサルプロジェクト:-PJSIP -STUN、TURN、ICEなどの標準ベースのプロトコルを使用してNATトラバーサル機能を提供します。-NATトラバーサル用のApacheMINAJavaネットワークライブラリを使用したフリーキャスト
networking - TCPチェックサムのエラー率?
TCPとUDP(場合によっては)は、内容が正しいことを確認するために単純なチェックサムを使用します。
私が知りたいのは、パケットが破損する頻度の経験的データまたは見積もりですが、標準的なコンピューターとインターネット接続を使用している人にとっては正しいチェックサムがあります。
これはおそらくISPの品質、ハードウェアの品質などによって大きく異なることがわかっていますが、これに関する情報を聞きたいだけです。
flash - Flash/ActionScript で UDP を使用することは可能ですか?
簡単な質問: Flash/ActionScript で UDP データグラム ソケットを使用する可能性はありますか?