問題タブ [rust-tokio]

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

rust - 要求メッセージの値は、静的な有効期間の間有効でなければなりません

JSON 本文を含む POST 要求を送信し、応答の JSON オブジェクトを返すブロッキング関数を実装したいと考えています。

msg十分な長さではないというエラーが表示されます。

この時点で、2 つの質問があります。

  1. msg静的な有効期間の間、有効にしたいコンポーネントは何ですか? メッセージからはわかりません。
  2. msg静的な有効期間を有効にせずにそのような関数を実装するにはどうすればよいですか? 私の場合、それは実行可能な解決策ではありません。

依存関係:

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

rust - 改行を送信しても TCP エコー サーバーが応答しない

Tokio クライアントのチュートリアルに従って、最後に改行を付けて応答を返すエコー サーバーと通信するクライアントを作成しようとしています。ここに私が持っているものがあります:

A の ASCII コードは 65 で、改行は 12 であるため、これが「A\n」と出力されることを期待しています。私のサーバーは、このコマンドを使用する netcat です。

これは、コアで応答の未来を実行することにかかっているようです。ここで何が欠けていますか?

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

rust - Tokio の mpsc と oneshot を使用するとデッドロックが発生する

クライアントからの要求に応じて、宛先に応じて複数のインターネット ゲートウェイのいずれかを選択する SOCKS サーバーを作成したいと考えています。大まかな流れは

  1. SOCKS5 ネゴシエーションを実行し、クライアントからアドレス情報を取得します
  2. 内部サーバーに、インターネット ゲートウェイと宛先の IP を選択するように要求します
  3. 接続して通信を行う

この内部サーバーでは、mpsc キューで待機する Tokio タスクが生成されます。受信したメッセージには、結果を返すために SOCKS5 アドレス情報とワンショット チャネルの tx 側が含まれている必要があります。

別の Tokio タスクは、内部サーバーに定期的にクエリを実行するだけです。

Cargo.toml 依存関係の使用:

このコードはデッドロックします。出力は次のとおりです。

予想される出力は次のとおりです。

これは、tx末尾のリクエストが内部サーバーに正常に送信されたが、内部サーバーがそれを処理していないことを示します。私の理解では、mpsc と oneshot はスレッドだけでなくタスク間の転送にも使用できるため、含まれているスレッドがデッドロックすることはありません。

ここで何が問題なのですか?