gpt4 book ai didi

c++ - 对于客户端服务器程序,并行接收多个客户端连接请求的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 11:46:02 24 4
gpt4 key购买 nike

该程序是在 Linux 上用 C 语言开发的客户端服务器套接字应用程序。有一个远程服务器,每个客户端都连接到该服务器并将自己记录为在线。在任何给定的时间点,很可能会有多个客户端在线,所有客户端都试图连接到服务器以将自己记录为在线/忙碌/空闲等。那么服务器如何处理这些并发请求。什么是好的设计方法(可能是每个连接请求的 fork /多线程?)?

最佳答案

我个人会为服务器使用事件驱动方法。在那里你注册了一个回调,一旦连接到达就会被调用。以及套接字准备好读取或写入时的事件回调。

与线程相比,通过大量连接,您将获得巨大的性能和资源优势。但我也更喜欢这个,因为连接数较少。

只有在您确实需要使用多核或者您有一些请求可能需要更长的处理时间并且如果没有线程就无法处理它太复杂的情况下,我才会使用线程。

我用 libev作为处理事件驱动网络的基础库。

关于c++ - 对于客户端服务器程序,并行接收多个客户端连接请求的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com