poll / epoll服务器 - 如何处理每个连接数据

时间:2016-03-08 07:17:05

标签: c++ polling epoll

我正在使用poll / epoll编写linux网络服务器。

我计划拥有大量连接的客户端,例如5000 - 10000甚至20000。

每个客户端都会根据请求发送一些数据,然后服务器会发回一些数据。为简单起见,我决定将此数据限制为16 KB。

我正在使用C ++ 11。

我认为,

  • 我可以创造巨大的静态" 16 KB块的数组,总大小为最大客户端,例如用于10K连接 - 10000 x 16 KB = 160 MB

  • 我可以在那里创建缓冲区数组(std::vector<char>)和push_back。

  • 我可以创建std::vector个缓冲区。

在所有情况下,服务器在满载时将占用160 MB,但如果我使用&#34;静态&#34;数组,初始分配后将没有任何内存分配/移动。

最好的方法是什么?我还缺少其他一些解决方案。

0 个答案:

没有答案