2012-07-28 89 views
3

我正在用C++編寫遊戲Minecraft的服務器。boost :: asio convert socket to secure

客戶端通過普通套接字向服務器發送初始握手報文。然後服務器將RSA密鑰發回遊戲,並且從該點開始的所有套接字通信都會通過發送給客戶端的RSA密鑰進行AES加密。

我有一個想法,我可以在服務器發送RSA密鑰後直接將我的常規boost :: asio套接字直接轉換爲boost :: asio ssl套接字,從而避免實現AES/RSA並鏈接到服務器中的其他庫給客戶。

如何在轉換套接字時創建它?

回答

4

ssl::streamtcp::socket之上實現,您可以直接通過next_layerlowest_layer成員函數訪問套接字。實際上,要使用ssl::stream,首先連接下劃線插槽,然後調用ssl::stream::handshake。請注意,您可以在這兩個步驟之間執行任何操作,例如直接從tcp::socket進行讀寫。詳情請參閱this example