【问题标题】:SSL Socket in Windows. Library? Synchronous/Asynchronous? Threads?Windows 中的 SSL 套接字。图书馆?同步/异步?线程?
【发布时间】:2010-09-27 02:43:26
【问题描述】:

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

我必须从 HTTP 切换到 SSL 套接字连接。我还需要验证服务器证书(是否受信任、是否过期、是否已撤销

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

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

  3. 如果我使用异步操作,最好在第一个线程中移动套接字操作?

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

【问题讨论】:

    标签: visual-studio multithreading sockets mfc ssl


    【解决方案1】:

    关于 SSL 支持 - 看看 openssl.org

    取消支持很好;要做到这一点,如果请求取消,您必须定期从工作线程检查。注意使用 volatile 变量或使用关键部分保护对它的访问。 不要从 GUI 线程执行网络操作,即使它是异步的。最好不要从 GUI 线程执行任何类型的 IO,以确保它具有响应性,更重要的是,它不会挂起。

    【讨论】:

      【解决方案2】:

      +1 为 OpenSSL.org

      早在 2002 年,我就在“Windows Developer Magazine”中写过关于将 OpenSSL 与异步 Windows 套接字集成的文章,该文章可在此处找到:http://www.serverframework.com/asynchronousevents/2010/10/using-openssl-with-asynchronous-sockets.html,其中包含使用 OpenSSL 的简单 MFC 客户端的源代码。

      【讨论】:

        【解决方案3】:

        这里还有另一个免费库 SOcketPro:

        http://www.udaparts.com/document/articles/demome.htm

        Rgds, moster67

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-07-24
          • 2018-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多