3

C++ でゲーム Minecraft のサーバーを作成しています。

クライアントは、通常のソケットを介してサーバーに初期ハンドシェイク パケットを送信します。その後、サーバーは RSA キーをゲームに送り返し、それ以降のすべてのソケット通信は、クライアントに送信された RSA キーで暗号化された AES になります。

サーバーがRSAキーをクライアントに送信した直後に、通常のboost::asioソケットをboost::asio sslソケットに変換するだけで、サーバー内のAES/RSAの実装と他のライブラリへのリンクを回避できるという考えがありました。

ソケットが既に作成されている場合、ソケットを変換するにはどうすればよいですか?

4

1 に答える 1

5

ssl::streamは の上に実装されており、またはメンバー関数tcp::socketを介してソケットに直接アクセスできます。実際、 を使用するには、まず下線部のソケットを接続してから を呼び出します。これらの 2 つのステップの間で、そこから直接読み書きするなど、好きなことを行うことができることに注意してください。詳細については、この例を参照してください。next_layerlowest_layerssl::streamssl::stream::handshaketcp::socket

于 2012-07-28T09:29:42.763 に答える