首页 > 解决方案 > WinHTTP 服务器能否像 Winsock 一样在单独的线程中处理客户端

问题描述

客观的

我正在用 C++17 编写一个 HTTP 服务器。

为了便于讨论,我将要求降低为:

  1. 简单的 HTTP 回显服务器。
  2. 期待多个客户。
  3. 客户不断地发送简单的GET请求。
  4. 在单独的线程中处理每个客户端。
  5. 回应者200 OK

温索克

我读了这个例子:Winsock 服务器源代码

我了解如何调整此示例以回答要求(类似于此处建议的内容):

  1. 创建一个std::thread倾听客户的
  2. 当客户端被接受时,为客户端创建一个新线程并传递新的SOCKET.

WinHTTP

我也想尝试一下WinHTTP。所以,我读到了这个:HTTP Server Sample Application

但是,尝试应用与以前相同的“策略”时,我有点迷失了。没有与 Winsock 的accept()函数等效的 WinHTTP 函数可以让我为每个客户端创建一个线程。

问题

假设我打算应用的方法Winsock是有效的,是否有类似的方法可以WinHTTP在单独的线程中处理每个连接/客户端?

标签: c++multithreadingc++17winsockwinhttp

解决方案


推荐阅读