問題タブ [flow-control]

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 に答える
748 参照

zeromq - NetMQ で SendHighWatermark を使用すると混乱する

私は NetMQ を使用してプロトタイプのテストを行っています。特に、HighWatermark オプションの影響を学習しています。

次のケースを理解し、テストしました。

  • ROUTER ソケットを持つサーバーはまだ起動していません
  • 一方、DEALER ソケットを持つクライアントは 20 個のメッセージを送信しています (SendHighWatermark は 10 です)。

この場合、クライアントは 10 個のメッセージしか送信できず、送信時にブロックされていることがわかります。

次に、処理が遅い別のテストを行いました.ROUTERは、各メッセージを受信した後にスリープします。この場合、DEALER は 10 件のメッセージを迅速に送信し、別の 10 件のメッセージを遅延して送信すると予想しました。しかし、DEALER は遅延なくすべてのメッセージを送信します。

ルーターのコード:

ディーラーのコード:

私の場合、処理が遅いのにディーラーが遅延なく送信できるのはなぜですか?

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

javascript - Javascript でのオブジェクト プロパティの適切な取得

私は現在、フロー制御の例外に頼るコードが散らばっている大規模なJavascriptコードベースで作業しています

同じ関数のこの実装などの条件付きロジックを好むかもしれません

後者は長ったらしく感じますが、ヘルパー関数を記述して、そのようなチェックのボイラープレートを減らすことができます。

前者はJavascriptの慣用的なものですか? 後者は(ブラウザ/シナリオ全体で)脆弱であり、とにかくtry/に任せた方がよいですか?catchそれとも前者は単に怠惰の証拠ですか?

編集

これらのオブジェクトは「プレーンな」オブジェクトであると推定されるvar obj = {}ため、ここでプロトタイプ チェーンを気にする必要はないと思います。

0 投票する
0 に答える
484 参照

java - JavaでUDPの残りのソケット受信バッファサイズを取得するにはどうすればよいですか?

UDP に基づく信頼性の高いトランスポート プロトコルを開発しています。したがって、フロー制御を実装するには、残りのバッファ サイズを知る必要があります。残りのソケット バッファ サイズを返すことができる DatagramSocket クラスにはメソッドがないようです。合計バッファ サイズを返す「getReceiveBufferSize()」メソッドのみがあります。これは実行できませんか、それとも間違った場所を見ていますか? それができない場合、どうすればフロー制御機能を実装できますか? どんな助けでも大歓迎です。

0 投票する
0 に答える
484 参照

c - cでストップアンドウェイトアルゴリズムを実装する計画

私が考えたアルゴリズムは以下の通りです。

1) 送信者は sendto() を使用してデータを送信します。

2) 受信機からの ACK パケットを待ちます。

3-1) 次のパケットに対する ACK がタイムアウト内に到着しない場合、同じパケットを送信します。

3-2) 次のパケットに対する ACK が到着した場合、次のパケットを送信します。

通常のアルゴリズムと同じ方法です。私が疑問に思っているのは、recvfrom() を使用してタイムアウトをカウントし、ACK を待つ方法です。私は最初にスレッドを使用することを考えましたが、より良いアプローチが必要です。この2つを同時に処理するにはどうすればよいですか?時間関連の変数を含む while ステートメントを使用する必要がありますか?

0 投票する
0 に答える
148 参照

spring - Spring websockets tcp -> フロー制御インターフェース

WebSocket を利用するスプリング ブート アプリがあります。バイナリで websocket を介して転送される独自のプロトコルを構築しました。そのプロトコルでは、特定のイベントが発生した後、クライアントに速度を落とす必要があることを知らせるためにフロー制御を使用したいと考えています。私はすでに websockets を使用しており、websockets は TCP を利用しているため、TCP 内に既に構築されている TCP フロー制御メカニズムを使用したいと考えています。私は自分で車輪を再発明したくありません。Spring での websocket 接続中に TCP ウィンドウ サイズを制御する方法を知っている人はいますか? つまり、このメカニズムを提供できる特定のインターフェースはありますか?

すべて RFC 6455 に従っています。つまり、Sec-WebSocket-Extensions ヘッダーと websocket ステータス コードを操作します。

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

networking - ビット レート (クロック レート) が異なる 2 つのネットワーク アダプタ間の通信

これは問題のステートメントです:

リンクの公称レートは、送信側が 4 kbps、受信側が 1 kbps です。伝播遅延は 20 ミリ秒、ACK サイズは 40 バイトです。停止して待機すると、少なくとも 50% の効率が得られるフレーム サイズの範囲はどれくらいですか?

この問題を解決してくださいと言っているわけではありませんが、論理的でないことがあります。

  1. ビットレートまたはクロック速度が同じでない場合、両端が受信したフレーム (および ACK) を正しく解釈する方法は?
  2. ネットワーク アダプタのバッファは、この状況で役割を果たしますか?

両端のクロック速度が異なるため、ビットレートも異なります。両端のクロックが同期していないと結論付けます。さらに、一方の端からもう一方の端に送信される信号の同期は、データ リンク層が正しく解釈されたビットを持つように、物理層で行う必要があると結論付けています。

私を啓発します。

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

loops - goto ステートメントを使用して、ループを介してフロー制御を明示的に示します

次のプログラム フラグメントを使用し、goto ステートメントを使用して、ループを介したフロー制御を示すことになっています。

goto ステートメントは避けるべきだと思いますが、これが質問が求めていることです。フロー制御がループを介して表示されるように、これが本来あるべき姿だと思います。

これは正しいです?goto ステートメントを break ステートメントの前に配置するか後に配置するかについて、私は肯定的ではありません。

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

if-statement - 非宣言的な if-then-else 構文を使用しない Prolog での適切なフロー制御

私は恣意的な事実をチェックし、それがナレッジベースにある場合は何かを行い、そうでない場合は別のことをしたいと思いますが、( I -> T ; E)構文はありません。

私のナレッジベースにはいくつかの事実があります:

不完全なルールが与えられた

このようにせずに、これを処理する正しい方法は何ですか?

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

javascript - promise 関数のフロー制御をループする方法

promise と Q を使用するのは初めてです。正しく行っていないと
思います。何か提案をお願いします。

fcall中で使えfcallますか?image[i]forループがあるため、各アイテムがリストpromise関数フローを処理 するようにしたい..

response最初から最後まで、各プロミス関数への入力が必要です。次に、次のフローに渡し、最後にクライアント側に戻ります
が、ループの処理方法がわかりません

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

c# - C# - 複数のダウンロード方法で複数の IP アドレスを確認する

私はこのサイトを初めて使用するため、書式設定の誤りがあった場合は事前にお詫び申し上げます。さらに説明が必要な場合はお知らせください。

私は現在、いくつかの http または ftp ソースからファイルをダウンロードすることを目的とした C# のプログラムに取り組んでいます。

いくつかの IP アドレスを通過し、いくつかの方法で既知のファイルを正常にダウンロードできるかどうかを確認します。これらの方法のいずれかでファイルを正常にダウンロードできた場合は、次の IP に移動して同じことを再度実行する必要があります。

これまでのところ、IP を含む配列を実行する foreach ループを使用し、「IPxx」という名前のフォルダーと FTP および HTTP URI を作成しています。これは、どの IP が FTP または HTTP アドレスを必要とするかを事前に知らないためです。

これまでのところ、このレベルまでのすべてが期待どおりに機能しています。ただし、いくつかのダウンロード方法を実行し、ファイルを正常にダウンロードできるかどうかを確認する必要があるとすぐに苦労します。そうでない場合は、次のダウンロード方法に移動して同じことを試す必要があります。

次の DownloadTestMethod を思いつきました。

正常にダウンロードされたファイルに対しては機能していますが、メソッドが要求されたファイルをダウンロードできない場合、このメソッドで「スタック」するようです。この場合、次の DownloadMethod にジャンプして、すべてのメソッドがチェックされるまで再度チェックするようにします。

さらに、プログラムがすべての IP を通過し、何もダウンロードできなかった場合は、自動メールを送信したいと考えています。私は EmailMethod を実装する方法を知っていますが、もう一度フロー制御に苦労しています。

私はまったくの初心者で、ここから目的の流れを得る方法がわかりません。