我正在用 C++ 为 Minecraft 游戏编写一个服务器。
客户端通过普通套接字向服务器发送初始握手数据包。然后,服务器将 RSA 密钥发送回游戏,并且从该点开始的所有套接字通信都将使用发送到客户端的 RSA 密钥进行 AES 加密。
我有一个想法,在服务器将 RSA 密钥发送到客户端后,只需将常规 boost::asio 套接字直接转换为 boost::asio ssl 套接字,就可以避免实现 AES/RSA 并链接到服务器中的其他库。
如果已经创建了套接字,如何转换它?
ssl::stream
是在一个之上实现的tcp::socket
,您可以直接通过next_layer
or lowest_layer
成员函数。事实上,要使用ssl::stream
,您首先连接下划线套接字,然后调用ssl::stream::handshake
。请注意,您可以在这两个步骤之间执行任何您想要的操作,例如从中读取和写入tcp::socket
直接地。看这个例子 http://www.boost.org/doc/libs/release/doc/html/boost_asio/example/ssl/client.cpp了解详情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)