1

我正在制作一个 unix ssl 服务器/客户端。到目前为止,我已经FD_SET使用 select 实现了在一个主服务器进程中同时处理所有连接。但是由于__FD_SETSIZE客户端的数量只能是1024。我需要增加客户端的数量和服务器的效率。改变__FD_SETSIZE有潜在的问题(显然?)所以我被卡住了。

到目前为止,网络包括:errno.h 检测、信号检测 -> 原子处理、fd_set -> select()、基于流套接字的成功通信。

如果有人能告诉我该怎么做,我将不胜感激?我fork()应该在 1024 之后(这会带来自己的问题,如果它甚至可行吗?)我是实现线程来处理每个客户端请求,还是只处理客户端数据或两者兼而有之?

您认为最好的网络架构是什么?请记住,它是一个基于套接字流的连接,旨在处理尽可能多的惩罚并允许尽可能多的客户端访问服务器。

4

1 回答 1

1

不要编写自己的生产 Web 服务器。

有太多的开源服务器都是由比你更了解高连接性和 SSL 的人编写的。它们还具有经过测试的优势,这是您使用自制服务器永远无法完成的。

于 2012-05-11T12:52:41.377 回答