1

私はAsio、SSL部分のドキュメントを正確にチェックしていて 、スレッドセーフステートメントに遭遇しました: OpenSSL BIOが同時実行と操作を許可していないことを理解しましたが、具体的に使用する機能をどこにも見つけることができませんでした。ssl::stream

Shared objects: Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
SSL_ReadSSL_Writestrand

  • これらの非同期関数は一度に実行されなくても、すぐに返されるため、データを読み取らないため、 strand.post(async_read)/を使用してstrand.post(async_write)も (私の知る限り) 同時実行が行われないことを保証するべきではありSSL_Readません。SSL_Write
  • またstrand、これらのハンドラーが呼び出されると、データは既に読み取られてユーザー定義のバッファーにコピーされるため、ハンドラー関数を使用することも (私には) 良いようには思えません。

ありがとうございました

4

1 に答える 1

1

さらにグーグルで調べたところ、探していたものが見つかりました。解決策は、完了ハンドラーでストランドを使用する HTTP サーバー 3 の例でした。それがどのように役立つかはまだわかりませんが、同時 SSL 操作が妨げられるため、プログラムがクラッシュすることはありません。

于 2013-03-06T13:28:28.340 に答える