该程序是在 Linux 上用 C 语言开发的客户端服务器套接字应用程序。每个客户端都连接到一个远程服务器并将其自身记录为在线。在任何给定时间点很可能有多个客户端在线,所有客户端都尝试连接到服务器以将自己记录为在线/忙碌/空闲等。那么服务器如何处理这些并发请求。什么是好的设计方法(也许每个连接请求 fork /多线程?)?
最佳答案
就我个人而言,我会为服务器使用事件驱动方法。在那里您注册一个回调,一旦连接到达就会调用该回调。以及每当套接字准备好读取或写入时的事件回调。
与线程相比,有了大量连接,您将获得巨大的性能和资源优势。但我也更喜欢这样,因为连接数较少。
只有当您确实需要使用多个核心,或者您有一些可能需要更长时间处理的请求,并且在没有线程的情况下处理它太复杂时,我才会使用线程。
我用libev作为处理事件驱动网络的基础库。
关于c++ - 对于客户端服务器程序,并行接收多个客户端连接请求的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651181/