我正在使用 Microsoft Windows WinSock API 的小型 http 服务器。
处理多个用户时是否需要应用多线程逻辑?
当前,当存在网络事件时,Windows 会发送一条消息,并且每条消息都携带(在 wParam 中)要在 send() 或 recv() 中使用的套接字。
当客户端 A 连接并请求几个文件时,Winsock 通常会创建一些套接字。然后我的服务器收到一条消息“将此文件发送到套接字 123”,然后“将该文件发送到套接字 456”
当另一个客户端连接时,它也会获得一些套接字,比如 789 和 654。
然后,我的服务器使用提供的套接字号响应发送数据的请求。它不必知道谁想要该文件,因为必须将正确的文件发送到正确的套接字。
我不知道在处理接受连接并将消息发送到我的程序时,Windows 本身是否使用多个线程。
所以我的问题是:
处理多个用户时是否需要应用多线程逻辑?如果是这样,我应该在什么时候创建一个线程?