boost::asio 将套接字转换为安全套接字

2024-04-18

我正在用 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(使用前将#替换为@)

boost::asio 将套接字转换为安全套接字 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri

随机推荐

  • 当列数动态时,如何从数据框中过滤数据?

    我有一个如下所示的数据框 A Name B Detail Value B Value C Value D 0 AA X1 1 2 0 5 1 3 1 BB Y1 0 76 0 7 0 8 2 CC Z1 0 7 1 3 2 5 3 DD L
  • 从圆/点获取投资回报率

    我在图像中有两个点 左眼中心 X Y 和右眼中心 X Y 我用双眼在双眼周围画了圈cv circle 这很好 但我现在想做的是获取我绘制的圆圈的投资回报率 即提取眼睛并将它们保存在新的 Mat 中 这是我目前的结果 但正如我上面所说 只需要
  • 从页面内重新加载 .NET MAUI 中的瞬态页面

    我有一个 NET MAUI 应用程序 其中一个页面在 MauiProgram cs 中注册为瞬态 我希望能够使用页面本身上的按钮重置页面 但不知道如何操作 请有人帮助我 我已经尝试过使用这段代码 但它没有做任何事情 RelayCommand
  • 使用 Apache 将端点转发到同一主机上的不同端口

    我正在尝试将 Apache 配置为以不同的方式处理应用程序的某些端点 我需要 api appname 和 admin 转发到同一主机上的单独 Tomcat 实例 显然在不同的端口上运行 Apache 正在侦听 443 SSL 浏览 Apac
  • 有没有办法退出 Greasemonkey 脚本?

    我知道你可以使用return 从 Greasemonkey 脚本返回 但前提是您不在另一个函数中 例如 这是行不通的 Begin greasemonkey script function a return Only returns from
  • docker 镜像中的 openVPN

    我正在尝试创建一个 docker 映像 其中包含一个 python 脚本 该脚本使用 openVPN 通过 VPN 连接到 API 但是 我似乎无法让 openVPN 正常工作 我有我的 docker 文件 Install openVPN
  • 修改函数内的点 (...)

    我正在尝试修改自定义函数内的点 这是我的一个简化示例plot2函数 它在屏幕上显示一个绘图type p 默认 并保存 svgtype l 当其中之一出现时 问题就出现了 绘图选项已在函数中 在这个例子中 type 由多个实际参数匹配 plo
  • 如何防止 IntelliJ IDEA 在启动时重新分配文件类型关联?

    我正在使用 IntelliJ IDEA Ultimate 18 1 而 Jenkinsfile 支持很糟糕 值得庆幸的是 将文件视为 Groovy 是我可以接受的解决方法 这涉及到 删除 Jenkinsfile 关联 在Groovy组下添加
  • flex:如何防止在flex3文本输入中粘贴(ctrl+V)?

    你好 我需要禁用在文本输入中粘贴文本 flex 3 CTRL V 任何想法 reagrds 这只会阻止粘贴多个字母 但它确实适用于大多数用途
  • CSS悬停菜单:获取悬停菜单项以保持悬停状态CSS

    在这种情况下 我如何设置在抛出菜单项时保持悬停状态 是否有仅 CSS 的方法或者我必须引入一些 javascript 谢谢 It is只需CSS即可实现 例如 如果您的菜单由嵌套列表组成 li hover background color
  • 本机 C++ 中的 CreatePushNotificationChannelForApplicationAsync

    我正在尝试在本机 C 代码中使用 Windows 推送通知 但我在实施方面遇到了困难 我正在打电话CreatePushNotificationChannelForApplicationAsync但它返回HRESULT FROM WIN32
  • 对于 JavaScript 多维数组的深层复制,深一层似乎就足够了。这是真的吗?

    注意 我只是一个新手编码员 所以这个问题的核心可能存在明显的错误或误解 本质上 我需要将 JavaScript 中的多维数组 按值 深度复制到未知的深度 我认为这需要一些复杂的递归 但它seems在 JavaScript 中 您只需复制一层
  • JSP、JavaScript:将字节[]显示为图像

    我使用以下代码片段从文件中选择和读取图像 div class col md 6 form group div
  • 模拟绘画应用的笔触

    我正在尝试编写一个应用程序 可用于使用模拟笔触创建看起来像绘画的图片 是否有任何好的资源可以提供模拟笔触的简单方法 例如 给定用户拖动鼠标经过的鼠标位置列表 画笔宽度和画笔纹理 如何确定要在画布上绘制的内容 我尝试将画笔纹理倾斜到鼠标移动的
  • Eclipse 无法识别 Android 上的“R.id...”

    有什么想法为什么 Eclipse 有时会失败并且无法识别几秒钟前执行的代码吗 下面代码中的 R 下面有红色波浪线 而 5 分钟前还没有 而且我没有更改任何代码 这种情况在 Eclipse 中经常发生 通常我将其关闭并重新启动 一切顺利 这次
  • 在 ansible 角色中引用 defaults/main.yml 中的变量

    我的角色设置如下 角色 测试 任务 main yml name Generate people files template src test j2 dest tmp item name cfg loop people 角色 测试 模板 t
  • 使用 Servlet 和 JSP 验证数字

    我在学习 Web 开发的同时正在开发一个小型 Servlet 和 JSP 应用程序 我有一个关于 jsp 和 servlet 之间的验证和传递值的问题 我有一个 啤酒 类 具有 评级 属性 双精度类型 加载 edit jsp 的 servl
  • Codeigniter - 返回视图作为数据不起作用[重复]

    这个问题在这里已经有答案了 我在 CodeIgniter 2 0 2 中将视图作为数据返回时遇到问题 我不确定此版本的 CI 中是否提供此功能 这可能是问题所在 但我希望不是这样 因为目前无法选择升级 我们运行两个两个网站 其中一个我们使用
  • 如何只选择表格中的几列

    我有一个包含大约 1000 列的表 当我使用 Select from Table 它返回表的整个记录 但我只想要有限的记录列 col1 col2 col3 col4 col 5 col1000
  • boost::asio 将套接字转换为安全套接字

    我正在用 C 为 Minecraft 游戏编写一个服务器 客户端通过普通套接字向服务器发送初始握手数据包 然后 服务器将 RSA 密钥发送回游戏 并且从该点开始的所有套接字通信都将使用发送到客户端的 RSA 密钥进行 AES 加密 我有一个