我正在制作一个unix ssl服务器/客户端。到目前为止,我已经使用select FD_SET
实现了在一个主服务器进程中同时处理所有连接。但是由于__FD_SETSIZE
,客户端数量只能是1024.我需要增加客户端数量和服务器效率。改变__FD_SETSIZE
有潜在的问题(显然是?)所以我被困住了。
到目前为止,网络包括:errno.h检测,信号检测 - >原子处理,fd_set - > select(),成功的基于流套接字的通信。
如果有人能告诉我该怎么办,我真的很感激?在1024之后我会fork()
(这会出现问题,如果它甚至可行吗?)我是否实现线程来处理每个客户端请求,或只是客户端数据或两者兼而有之?
您认为最好的网络架构是什么?请记住它是一个基于套接字流的连接,旨在尽可能多地处理惩罚,并允许尽可能多的客户端到服务器。
答案 0 :(得分:1)
不要编写自己的生产Web服务器。
有太多open source servers的内容都是由那些比你更了解高连接性和SSL的人编写的。它们还具有经过测试的优势,使您无法通过自制服务器完成测试。