3

我正在用 C++ 为 Minecraft 游戏编写服务器。

客户端通过普通套接字向服务器发送初始握手包。然后服务器将 RSA 密钥发送回游戏,从那时起所有套接字通信都使用发送给客户端的 RSA 密钥进行 AES 加密。

我有一个想法,我可以通过在服务器将 RSA 密钥发送到客户端后直接将我的常规 boost::asio 套接字转换为 boost::asio ssl 套接字来避免实现 AES/RSA 并链接到服务器中的其他库。

如果已经创建了套接字,我该如何转换它?

4

1 回答 1

5

ssl::stream是在 a 之上实现的tcp::socket,可以通过next_layerorlowest_layer成员函数直接访问套接字。实际上,要使用ssl::stream,您首先连接下划线套接字,然后调用ssl::stream::handshaketcp::socket请注意,您可以在这两个步骤之间做任何您想做的事情,例如直接从中读取和写入。有关详细信息,请参阅此示例

于 2012-07-28T09:29:42.763 回答