【发布时间】:2012-10-22 07:55:18
【问题描述】:
我正在使用 Microsoft Windows WinSock API 的小型 http 服务器。
在处理多个用户时是否需要应用多线程逻辑?
目前Windows在有网络事件和每条消息时都会发送一条消息 携带(在 wParam 中)要在 send() 或 recv() 中使用的套接字。
当客户端 A 连接并请求几个文件时,通常会有多个套接字 由 Winsock 创建。然后我的服务器收到一条消息“将此文件发送到 套接字 123”和更高版本“将该文件发送到套接字 456”
当另一个客户端连接时,它也会获得一些套接字,比如 789 和 654。
然后我的服务器使用提供的套接字号响应发送数据的请求。它 不必知道谁想要该文件,因为必须将正确的文件发送到 正确的插座。
不知道Windows本身在处理时是否使用了多线程 接受连接并将消息发送到我的程序。
所以我的问题是:
在处理多个用户时是否需要应用多线程逻辑?如果是这样的话 我应该在哪一点上创建一个线程?
【问题讨论】: