visual-studio - Windows 中的 SSL 套接字。图书馆?同步/异步?线程?

标签 visual-studio multithreading sockets mfc ssl

我有一个 2 线程应用程序。一个 GUI 线程和一个工作线程 (CWinThread),我在其中进行耗时操作 - 计算和 HTTP 通信。

我必须从 HTTP 切换到 SSL 套接字连接。我还需要验证服务器证书(是否可信,是否过期,是否被撤销)

  1. 哪个库用于 SSL 套接字(MFC、Boost 或其他)?

  2. 我必须使用同步操作还是异步操作?我认为如果我使用异步操作,我可能会实现可以从 GUI 线程调用的取消功能。

  3. 如果我使用异步操作,将套接字操作移到第一个线程中是否更好?

  4. SSL协议(protocol)是否支持流数据压缩?

最佳答案

对于 SSL 支持 - 查看 openssl.org

取消支持很好;为此,您必须定期从工作线程检查是否请求取消。注意使用 volatile 变量或使用临界区保护对它的访问。 不要从 GUI 线程执行网络操作,即使它是异步的。不从 GUI 线程执行任何类型的 IO 是一个很好的策略,以确保它具有响应能力,更重要的是,它不会挂起。

关于visual-studio - Windows 中的 SSL 套接字。图书馆?同步/异步?线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370784/

相关文章:

visual-studio - Visual Studio 2015 社区安装更新 1 失败

Android:线程无限循环/手机过热

Java 线程 Random.nextLong() 返回相同的数字

java - 为什么我的 Java 线程似乎只在一个核心上运行,而我的机器有两个核心?

python - 实例化 icmp ipv6 后在 v6 python 套接字中设置 'next header' 字节

c# - 无法调用 Invoke 或 BeginInvoke 错误

c# - 逐步的功能测试自动化

c# - HttpContext.Current.User.Identity.Name 使用 IIS Express 但不是 Visual Studio Development Server 为空

Ruby 将字节写入套接字

java - 从 Socket 读取字节数组